Lucene多个索引:规范化文档分数?

时间:2009-07-17 14:37:08

标签: c# lucene

假设我在几台PC上有多个lucene索引(不是复制品)。

我查询每个索引,然后合并结果。 有没有办法规范化文档分数,以便我可以按分数(相关性)排序?

我的意思是,索引A的文档A的分数与索引B的文档B不可比,除非我做某种规范化......不是这样吗?

由于 Roey

2 个答案:

答案 0 :(得分:4)

首先,研究Lucene Similarity Documentation。在那里的所有因素中,唯一一个因索引而异的是inverse document frequency (idf)

我建议您使用Luke或调试器来查看不同索引的idfs的影响。 您可能会发现这只会产生轻微的影响。

以下是a discussion about using a global idf,此处为Wiki page about distributed search design in Solr。我相信这个问题还没有解决。

Lucene得分不适合简单的规范化。我建议你尝试让文档分发尽可能随机,然后比较两个索引的命中率如何排名。

答案 1 :(得分:-1)

用于比较索引X和Y的文档A的得分。我计算x = score(A,X) / max score of any document that is a hit for search on index Xy = score(A,Y) / max score of any document that is a hit for search on index Y

x和y现在都在0和1之间。只需添加x和y即可获得最终得分。

这是一种天真的做法。我想听听你对此的评论。

但我不明白你为什么要添加两个不同文件的分数。用例?