Spring Data ElasticSearch:返回的分数已关闭

时间:2018-09-25 12:02:24

标签: spring-boot elasticsearch spring-data-elasticsearch

我有一个Spring Boot项目,其中org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:2.0.0.RELEASE连接到elasticsearch-6.3.1服务器。

我有以下情况:对于一些elasticsearch查询(涉及到应该布尔),与使用curl手动运行查询时得到的分数不同。

我尝试过的步骤:在调用存储库之前,从SearchQuery中使用调试器提取查询,从Elasticsearch日志中提取查询(使用"index.search.slowlog.threshold.fetch.debug" : "0s", "index.search.slowlog.threshold.query.debug" : "0s");在这两种情况下,使用curl手动运行查询都会得到一组与Java api给出的分数不同的分数。

我提到我无法通过查看两个得分集之间的差异来找到模式。手动查询返回的分数似乎是正确的分数,因为我希望其中一些分数具有相同的值,而对于api返回的分数则不会发生。

如果您对可能导致此问题的方式或如何继续进行调查有任何想法,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我通过用constantScoreQuery包装内部查询,使api返回的分数与手动运行的分数相同,看来TF / IDF标准是“罪魁祸首”。

尽管如此,为什么手动查询首先表现为忽略TF / IDF仍然很奇怪。