Lucene得分结果

Stephen Hendry 40 lucene search

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

即如果我搜索:

  • 姓名 - 约翰史密斯
  • DOB - 11/11/1934

分区0将返回0.345的分数

分区1将返回0.337的分数

两者都完全匹配名称和DOB.

Stephen Hend.. 20

得分包含逆文档频率(IDF).如果术语"John Smith"在一个分区中,0,100次,在分区1中,一次.搜索John Smith的分数在分区1中将是更高的搜索,因为该术语更加稀缺.

为了解决这个问题,你必须让你的索引覆盖所有分区,否则你需要覆盖IDF.


Michael Stum.. 14

因为如果我没有完全弄错的话,分数是根据索引确定的.

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

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

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

  • 更新链接:http://lucene.apache.org/java/2_4_0/scoring.html (2认同)

Joe Shaw.. 9

您可能还对该explain()方法的输出以及生成的Explanation对象感兴趣,这将使您了解事物的得分方式.