配置弹性搜索结果评分

时间:2018-01-30 17:07:35

标签: java spring elasticsearch

是否可以配置或改变弹性搜索对其结果进行评分的方式?

在搜索" term"使用包含该术语的一个实例的NativeSearchQueryBuilder文档都得分相同。这是有道理的。但是,其中一个文档只包含该术语,其他文档中包含术语和其他数据。例如;

Doc1:Title:Space

Doc2:标题:时空

Doc3:标题:无空间

所以当搜索Space时,无论如何都要让Doc1得分更高?

- 编辑 所以,在briarheart的回应之后再详细一点。我认为问题在于我们实施预先搜索的方式。如果我使用我们的标准搜索运行Space查询,排名是由briarheart概述的,但我们的typeahead会对所有内容进行同等评分,因为我们正在使用通配符请求部分并查找" term *"所以" Space"和#34;太空巷"两者都做得很好。

所以我猜我真的错了问题。评分工作正常,我只需要找出更好的类型实现。

(建议请求部分似乎不适合用例,因为这将涉及选择并重新提交所需的建议)。

1 个答案:

答案 0 :(得分:0)

我不知道您的查询究竟是什么样子,但实际上在使用术语“空间”的全文搜索的情况下,您的示例中的文档“Doc1”将获得最高分,因为其“标题”的长度领域。较短的字段在相关性方面具有更大的权重。