首页 > 解决方案 > 升级弹性搜索后出现结果问题

问题描述

我正在将我的 elasticsearch 从 2.2 升级到 7.1,并且我正在维护这两个实例,并且我试图通过进行相同的搜索查询来比较新版本和旧版本的结果。

注意:我没有更改映射、设置或查询逻辑

我的结果几乎相同,但得分略有不同。是预期的吗?虽然文档、映射、设置和查询逻辑是一样的?

标签: elasticsearch

解决方案


Elasticsearch 2.x 版本使用tf/id f 进行评分,这个ES 文档详细解释了它。

而 ES 7.X 使用改进的BM25算法进行分数计算。是 ES 的另一篇不错的文章,详细解释了它。

简而言之,是的,ES 2.X 和 7.X 的评分公式发生了重大变化,因为底层算法本身发生了变化,即使您拥有相同的所有其他内容,例如文档、映射、设置和查询,您仍然会有不同的分数。

您可以在查询中使用explain API 来了解查询返回的文档分数。


推荐阅读