题
在 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
目的, ,这将使您了解事物的评分方式。
不隶属于 StackOverflow