1:标准化因子文件nrm
在讨论标准化因子(Normalization Factor)之前,首先应明晰两个概念:
-
tf(term frequency):term在文档中出现的频次
-
idf(inverse doc frequency):包含term的词条越少,则此term的idf值越大
Term Weight的计算主要与上诉两个因子有关,但是还存在一些与文档本身有关的问题:
-
Doc Boost 文档的重要性权值
-
Field Boost Filed的重要性权值
-
文档长度
标准化因子的作用
标准化因子主要是为了解决上诉三个问题,在计算Term Weight时都会乘上标准化因子,因为是离线生成,所以能够优化计算性能。
标准化因子的计算方法
标准化因子在索引过程中计算生成,存储为nrm文件,计算公式如下
norm(t,d)=doc.getBoost()*lengthNorm(field)*∏f.getBoost()
参数含义如下:
-
t:term d:doc
-
lengthNorm(field):与一个Field里面包含的term总数负相关,计算公式为1/Math.sqrt(numTerm)
-
∏f.getBoost():如果一个term在一个doc里面的n个field中出现,则此值为此n个field的boost值的连乘