我试图更好地了解 lucene 如何对我的搜索进行评分,以便我可以对我的搜索配置或文档内容进行必要的调整。
以下是分数细分的一部分。
产品:
0.34472802 = queryWeight, product of:
2.2 = boost
7.880174 = idf(docFreq=48, maxDocs=47667)
0.019884655 = queryNorm
1.9700435 = fieldWeight in 14363, product of:
1.0 = tf(freq=1.0), with freq of:
1.0 = termFreq=1.0
7.880174 = idf(docFreq=48, maxDocs=47667)
0.25 = fieldNorm(doc=14363)
0.26806915 = (MATCH) max of:
0.07832639 = (MATCH) weight(shortDescription:tires^1.1 in 14363) [DefaultSimilarity], result of:
0.07832639 = score(doc=14363,freq=1.0 = termFreq=1.0
我了解提升是如何计算的,因为这是我的配置值
但是 idf 是如何计算的(7.880174 = idf 值)。
根据lucene,idf公式为:idf(t) = 1 + log(numDocs/(docFreq+1))
我检查了核心管理控制台,发现我的 docFreq = maxDocs = 47667。
使用来自 lucene 的公式,我无法计算出预期的 7.880174。相反,我得到:idf = 3.988 = 1 + log(47667/(48+1))。
我的公式中是否缺少某些东西。