Spring Data ElasticSearch:返回的分数不对
Spring Data ElasticSearch: returned scores are off
我有一个 Spring 引导项目 org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:2.0.0.RELEASE
连接到 elasticsearch-6.3.1
服务器。
我遇到以下情况:对于某些 elasticsearch 查询(涉及 should bool),我得到的分数与我 运行 使用 curl 手动查询时得到的分数不同。
我尝试过的步骤:在调用存储库之前使用 SearchQuery 中的调试器提取查询,从 elasticsearch 日志中提取查询(使用 "index.search.slowlog.threshold.fetch.debug" : "0s", "index.search.slowlog.threshold.query.debug" : "0s"
);在这两种情况下,运行使用 curl 手动查询给出的一组分数与 Java api.
给出的分数不同
我提到我无法通过查看两个分数集之间的差异找到规律。手动查询返回的分数似乎是正确的,因为我希望其中一些具有相同的值,而 api.
返回的分数不会发生这种情况
如果您对可能导致此问题的原因或如何继续调查有任何想法,我们将不胜感激。
我通过用 constantScoreQuery 包装内部查询,设法使 api return 与手册 运行 的得分相同,似乎 TF/IDF标准是 'culprit'.
但仍然很好奇,为什么手动查询首先表现为忽略 TF/IDF ..
我有一个 Spring 引导项目 org.springframework.boot:spring-boot-starter-data-elasticsearch:jar:2.0.0.RELEASE
连接到 elasticsearch-6.3.1
服务器。
我遇到以下情况:对于某些 elasticsearch 查询(涉及 should bool),我得到的分数与我 运行 使用 curl 手动查询时得到的分数不同。
我尝试过的步骤:在调用存储库之前使用 SearchQuery 中的调试器提取查询,从 elasticsearch 日志中提取查询(使用 "index.search.slowlog.threshold.fetch.debug" : "0s", "index.search.slowlog.threshold.query.debug" : "0s"
);在这两种情况下,运行使用 curl 手动查询给出的一组分数与 Java api.
我提到我无法通过查看两个分数集之间的差异找到规律。手动查询返回的分数似乎是正确的,因为我希望其中一些具有相同的值,而 api.
返回的分数不会发生这种情况如果您对可能导致此问题的原因或如何继续调查有任何想法,我们将不胜感激。
我通过用 constantScoreQuery 包装内部查询,设法使 api return 与手册 运行 的得分相同,似乎 TF/IDF标准是 'culprit'.
但仍然很好奇,为什么手动查询首先表现为忽略 TF/IDF ..