在 Lucene 中,如果您有多个索引,每个索引仅覆盖一个分区。为什么不同索引上的相同搜索会返回不同分数的结果?来自不同服务器的结果完全匹配。

IE。如果我搜索:

  • 姓名 - 约翰·史密斯
  • 出生日期 - 11/11/1934

分区0 将返回 0.345 的分数

分区1 将返回 0.337 的分数

两者的姓名和出生日期完全匹配。

没有正确的解决方案

其他提示

得分 包含逆文档频率(IDF)。如果术语“John Smith”在一个分区中出现 0、100 次,在分区 1 中出现一次。在分区 1 中搜索 John Smith 的得分会更高,因为该术语更加稀有。

为了解决这个问题,您必须将索引覆盖所有分区,否则您将需要覆盖 IDF。

因为如果我没有完全弄错的话,分数是根据指数决定的。

如果您有不同的索引(索引的数据更多/更少或不同),分数将会不同:

http://lucene.apache.org/core/3_6_0/scoring.html

(警告:包含数学:-))

您可能还对以下内容的输出感兴趣 explain() 方法, ,以及由此产生的 Explanation 目的, ,这将使您了解事物的评分方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top