分值计算方式为查询语句query中每个项term与文档doc的评分之和。公式表示见1-1。
score(query,doc)=∑term∈queryscore(term,doc)(1-1)score(t,d)=tf(t,d)∗idf(t)2∗boost(t,d)∗lengthNorm(t,d)∗coord(q,d)∗queryNorm(q)(2-1) 符号说明备注tterm/ddoc/qterm 所在query/tf(t,d)term在doc中的频率/idf(t) 1含有term的doc的频率 /boost(t,d)域和文档的加权在索引期间设置。可以用该方法对某个域或文档进行静态单独加权lengthNorm(t,d)域的归一化值域的归一化(normalization)值,更短的域获得更大的加权。该值在索引期间计算,并保存在索引norm中。coord(q,d)协调因子(Coordination factor)基于doc与query的term的交集的数量。该因子会对包含更多搜索项的文档进行类似AND 的加权。queryNorm(q)查询的归一化值每个term权重的平方和 此表格来源于《lucene实战(第二版)》,P82.tf*idf思想可见《tf*idf 用于文本分类中的特征提取》
score(t,d)=idf(t)∗(k1+1)∗tf(t,d)k1((1−b)+b∗dlavgdl)+tf(t,d)(2-2) k1,b为调节因子,根据经验设置,一般取 k1=2,b=0.75,dl为文档长度,avgdl为所有文档的平均长度。
