gpt4 book ai didi

elasticsearch - 术语与术语查询的评分不同

转载 作者:行者123 更新时间:2023-12-03 02:29:19 25 4
gpt4 key购买 nike

我正在通过过滤和使用 term 来检索文档查询以应用分数。
查询应该匹配具有指定颜色的所有动物 - 匹配的颜色越多,文档的分数越高。奇怪的是, termterms查询结果不同的评分。

{
"query": {
"bool": {
"should": [
{"terms": {"color": ["brown","darkbrown"] } },
]
}
}
}

应该和使用一样
{"term": {"color": {"value": "brown"} } },
{"term": {"color": {"value": "darkbrown"} } }

查询编号无论是匹配 1 项还是 2 项,1 都会为文档提供完全相同的分数。如果匹配更多颜色,后者当然会返回更高的分数。

正如 coordination factor 所述如果匹配的术语更多,则返回的分数应该更高。因此这两个查询应该得到相同的分数 - 或者是因为 term查询不分析搜索词?

我的字段被索引为文本。字符串被索引为字符串的“数组”,例如 "brown","darkbrown"

最佳答案

术语与术语查询之间的区别:

  • 条款查询返回在提供的字段中包含一个或多个确切术语的文档。
  • 条款查询与术语查询相同,但您可以搜索多个值。
  • 警告:避免对文本字段使用术语查询。

  • 就你的这部分而言

    or is because term queries do not analyze the search term?



    是的,这是因为搜索词不会分析搜索的词。它只匹配确切的搜索词。

    关于elasticsearch - 术语与术语查询的评分不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60344395/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com