根据短语中的字数计算得分

时间:2019-03-07 12:03:37

标签: elasticsearch

我们目前正在使用Elasticsearch 6.6,但在match_phrase和计算出的分数方面遇到了麻烦。

设置是什么

目前,

相似性设置是

"scripted_wc": { "type": "scripted", "script": { "source": "return doc.freq;" } }

我们想要拥有什么

例如,我们有3个文档: "bbb aaa aaa bbb aaa" "aaa ccc aaa bbb" "ccc aaa aaa bbb aaa"

查询类似于:

GET _search/ { "explain": true, "query": { "match_phrase": { "myfield": "ccc aaa" } } }

当我们查询"aaa"时,得分分别为3、2和3。这是正确的。但是,如果我们搜索"ccc aaa",我们将得到0、2、2的分数。我们的期望是得到0、1、1。当启用explain时,我们看到对于每个添加的单词,它都会创建一种子查询,返回1,但求和。因此,“ ccc aaa aaa”返回0、0、3而不是0、0、1。 “ bbb aaa”应该为每个文档返回2,0,1(当然不会返回0)。在这里,您可以看到说明输出:https://pastebin.com/jHPnTLEV

这是错误还是我们的理解是错误的?我们如何实现这一目标?

感谢您的帮助

0 个答案:

没有答案