C# Lucene多重索引:规范文档分数?
假设我在几台PC上有多个lucene索引(不是副本) 我查询每个索引,然后合并结果。 有没有办法使文档分数正常化,以便我可以按分数排序(相关性) 我的意思是,索引A中的文档A的分数将无法与索引B中的文档B进行比较,除非我进行某种规格化。。。。不是吗 谢谢 Roey首先,研究。在所有这些因素中,唯一不同于一个指数的因素是指数 我建议您使用或调试器来查看不同索引的IDF的影响。 你可能会发现,这只是一个很小的影响 这里是,这里是。我相信这个问题还没有解决C# Lucene多重索引:规范文档分数?,c#,lucene,C#,Lucene,假设我在几台PC上有多个lucene索引(不是副本) 我查询每个索引,然后合并结果。 有没有办法使文档分数正常化,以便我可以按分数排序(相关性) 我的意思是,索引A中的文档A的分数将无法与索引B中的文档B进行比较,除非我进行某种规格化。。。。不是吗 谢谢 Roey首先,研究。在所有这些因素中,唯一不同于一个指数的因素是指数 我建议您使用或调试器来查看不同索引的IDF的影响。 你可能会发现,这只是一个很小的影响 这里是,这里是。我相信这个问题还没有解决 Lucene评分不适合简单的标准化。我建议您
Lucene评分不适合简单的标准化。我建议您尝试将文档分布尽可能随机,然后比较两个索引中的命中率排名。用于比较索引X和Y中文档A的得分。我计算索引X中搜索命中的任何文档的
X=得分(A,X)/max得分Y=得分(A,Y)/Y索引上搜索成功的任何文档的最大得分
x和y现在都在0和1之间。只要加上x和y就可以得到最后的分数
这是一种幼稚的做法。我想听听你对此的意见
但我不明白你为什么要添加两个不同文档的分数。用例?+1随机分发文档。你必须确保这确实是一个问题。在大多数情况下,索引之间不同的DF值不会真正伤害你。我意识到这是一个古老的答案,但只是让你知道一些链接是有用的broken@AndyMcCluggage-我已将断开的链接更新到当前Lucene版本。这应该给你一年左右的时间,直到Lucene版本取代当前版本。我相信你误解了这个问题。问题是如何规范化结果集的分数,这对于在一系列索引中执行搜索和显示最相关的结果非常有用。值得关注的是,每个指标的内容都会影响结果的评分。如果索引X的关键字“motorcycle”频率较低,则可能会对包含该关键字的文档进行高分。当对索引Y合并相同的搜索时,比如说索引Y的关键字频率很高,来自X的文档可能比来自Y的可能更相关的文档得分更高。