Lucene的ScoreDoc.score是什么意思?

时间:2011-03-01 17:35:17

标签: java lucene

我正在使用多个字词执行boolean query。我只想处理高于特定阈值score的结果。我的问题是,我不明白这个值是如何计算的。我知道高数字意味着它是一个很好的匹配,低数字意味着它不匹配,但似乎没有任何上限?

是否可以将范围[0,1]范围内的分数标准化?

1 个答案:

答案 0 :(得分:11)

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

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

简短的回答是,每个文档的分数的绝对值并不真正意味着在给定搜索结果集的上下文之外的任何内容。换句话说,即使您将分数标准化,也没有将分数转换为人类相关定义的好方法。

话虽如此,您可以通过将每个匹配分数除以最高分来轻松地将分数标准化。因此,如果第一个匹配的分数是2.5,那么将每个命中的分数除以2.5,你将得到一个介于0和1之间的数字。