1

我从目录“test1”和“test2”创建了两个索引。“test1”目录有“file1.java”,而“test2”有两个文件“file1.java”和“file2.java”。“file1.java”在两个目录中是相同的。设索引分别为 index1 和 index2。

现在当我使用luke分析这两个索引时,我发现在index1中搜索到的关键字的分数与在index2中生成的分数不同。该关键字仅存在于“file1.java”中。

为什么分数不一样?在 Lucene 中是否有任何索引方法可以强制分数相同?

4

1 回答 1

1

lucene 中的分数允许您将查询结果的相关性与单个查询进行比较。它们并非旨在让您比较不同索引之间或不同查询之间的结果,或者保存它们并将它们与以后的运行进行比较。它们仅对返回的查询结果集和索引的当前状态有效。有关为什么以这种方式使用 lucene 分数是一个坏主意的更多信息,请参阅这篇关于Lucene 分数作为百分比的文章。

毕竟,Lucene 是使用 TF-IDF 算法进行评分的。您应该期望 IDF 分数在具有更多内容的索引中会有所不同。TFIDFSimilarity文档详细描述了评分算法。

如果您愿意,您当然可以使用许多相似性实现中的任何一种,或者自己创建一个实现。

于 2015-02-11T23:53:55.160 回答