Lucene的ScoreDoc.score是什么意思?

5
我正在执行一个包含多个术语的布尔查询。我只想处理得分高于特定阈值的结果分数。我的问题是,我不理解如何计算这个值。我知道高分数意味着匹配度高,低分数意味着匹配度差,但似乎没有上限?是否可能将分数归一化到[0,1]范围内?
1个回答

12

这是一篇描述Lucene如何计算分数的页面:

http://lucene.apache.org/java/3_0_0/scoring.html

简短的回答是每个文档得分的绝对值在给定搜索结果集的上下文之外没有实际意义。换句话说,即使你对得分进行标准化,也没有一个很好的方法将得分转化为人类定义的相关性。

尽管如此,您可以通过将每个命中的得分除以最大得分来轻松标准化得分。因此,如果第一个命中的得分是2.5,则将每个命中的得分除以2.5,您将得到介于0和1之间的数字。


2
TopDocs.getMaxScore() 提供相同的值,无需查看匹配文档即可获得。 - David Soroko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接