我有一组通过NLP算法从文本中提取的单词,以及每个文档中每个单词的相关分数。
例如 :
document 1: { "vocab": [ {"wtag":"James Bond", "rscore": 2.14 },
{"wtag":"world", "rscore": 0.86 },
....,
{"wtag":"somemore", "rscore": 3.15 }
]
}
document 2: { "vocab": [ {"wtag":"hiii", "rscore": 1.34 },
{"wtag":"world", "rscore": 0.94 },
....,
{"wtag":"somemore", "rscore": 3.23 }
]
}
我希望每个文档中rscore
的match
wtag
都可以影响_score
ES给它的给定值,或者乘以或加到上_score
,以影响_score
结果文档的最终(依次,顺序)。有什么办法可以做到这一点?
解决此问题的另一种方法是使用嵌套文档:
首先设置映射以创建vocab
一个嵌套文档,这意味着每个wtag
/ rscore
文档将在内部作为单独的文档建立索引:
curl -XPUT "http://localhost:9200/myindex/" -d'
{
"settings": {"number_of_shards": 1},
"mappings": {
"mytype": {
"properties": {
"vocab": {
"type": "nested",
"fields": {
"wtag": {
"type": "string"
},
"rscore": {
"type": "float"
}
}
}
}
}
}
}'
然后索引您的文档:
curl -XPUT "http://localhost:9200/myindex/mytype/1" -d'
{
"vocab": [
{
"wtag": "James Bond",
"rscore": 2.14
},
{
"wtag": "world",
"rscore": 0.86
},
{
"wtag": "somemore",
"rscore": 3.15
}
]
}'
curl -XPUT "http://localhost:9200/myindex/mytype/2" -d'
{
"vocab": [
{
"wtag": "hiii",
"rscore": 1.34
},
{
"wtag": "world",
"rscore": 0.94
},
{
"wtag": "somemore",
"rscore": 3.23
}
]
}'
并运行nested
查询以匹配所有嵌套文档,并rscore
为每个与之匹配的嵌套文档求和:
curl -XGET "http://localhost:9200/myindex/mytype/_search" -d'
{
"query": {
"nested": {
"path": "vocab",
"score_mode": "sum",
"query": {
"function_score": {
"query": {
"match": {
"vocab.wtag": "james bond world"
}
},
"script_score": {
"script": "doc[\"rscore\"].value"
}
}
}
}
}
}'
有这些文件的: 和 我想要获得_score根据每个标记的置信度值计算出来的值。例如,如果您搜索“mountain”,它应该只返回id为1的doc,显然,如果您搜索“landsacture”,得分2应该高于1,因为landsacture在2中的置信度高于1(48.36 vs 33.66)。如果您搜索“海岸景观”,这个时间得分1应该高于2,因为doc1在tags数组中同时包含海岸和景观。我还想用“bo
问题内容: 拥有这些文件: 和 我想获得基于每个标签的置信度值计算的_score。例如,如果您搜索“ mountain”,则显然应该仅返回ID为1的文档;如果您搜索“ landscape”,则得分2应该高于1,因为景观对2的置信度高于1(48.36 vs 33.66)。如果您搜索“ coast landscape”,则此时间得分1应该高于2,因为doc 1在标签数组中同时包含了Coast和Land
我有以下 3 份文件。每个代表一个用户的联系人: 我需要通过数组元素对它们进行聚合/分组,这样我就可以识别重复的联系人(基于电子邮件id)。因为在文档(1 我尝试在java中使用$unwind和$group执行此操作,如下所示: 这按电子邮件ID对文档进行分组(这是正确的),但没有达到目的。 任何帮助都将不胜感激。 我需要实现的功能,用户可以在他的存储库可能重复的联系人提示。我需要聚合结果类似于:
我正在向elasticsearch发送查询,它会响应其文档中字段的未知顺序。我如何修复elsasticsearch返回文档中字段的顺序?我的意思是,我正在发送这个查询: 当它回应时,它给了我一些不正常的东西。我最后想将其转换为csv,并修复csv标题。有什么方法可以让我得到像doc1:{“field1”,“field2”,“field3”,“field14”}doc2:{“field1”,“fie
有没有办法使用“ACF分类法字段”来影响“自定义分类法”的帖子计数?现在我正在使用ACF分类法字段,但我的自定义分类法分配了0篇文章。 这可能吗?我尝试这样做是因为它对最终用户更友好,ACF更灵活;如果我需要用户只选择一个分类法并进行其他限制,我可以对其进行限制。
我无法在任何地方找到如何在ES自定义评分函数中测试空值的示例。根据文档,脚本是时髦的,根据日志,脚本是无痛的评估,但即使这样,我仍然对一些错误感到困惑 这似乎表明我正在尝试将双精度值cas到布尔值并提出,但我需要测试非空值。 我的评分脚本应该怎么写? 编辑:我知道在无痛中我不能使用三进制的<代码>?:运算符,所以我必须显式地编写< code>doc['xx']。值!= null。然而,对于用空值索