我有两个从目录" test1"和" test2"。 " TEST1"目录有" file1.java"而" test2"有两个文件" file1.java"和" file2.java"在里面。 " file1.java"在两个目录中是相同的。让索引分别为index1和index2。
现在,当我使用luke分析这两个索引时,我发现在index1中搜索的关键字的分数与index2中生成的分数不同。此关键字仅存在于" file1.java"。
中为什么分数不同?在Lucene中是否有任何索引方法可以强制分数相同?
答案 0 :(得分:0)
lucene中的分数允许您将查询结果的相关性与单个查询进行比较。它们的设计不允许您比较不同索引之间或不同查询之间的结果,或者保存它们并将它们与以后的运行进行比较。它们仅对返回的查询结果集和索引的当前状态有效。请参阅有关Lucene Scores as Percentages的文章,详细了解为什么错误主意以这种方式使用lucene得分。
毕竟,Lucene使用TF-IDF算法进行评分。您应该期望在具有更多内容的索引中IDF分数不同。 TFIDFSimilarity documentation详细描述了评分算法。
如果您愿意,您当然可以使用任何相似的实现,或者自己创建一个实现。