ElasticSearach评分因素
1. coord(q,d) 评分因子,基于文档中出现查询项的个数。越多的查询项在一个文档中,说明文档的匹配程度越高。
评分因子计算公式:overlap / (float)maxOverlap;
overlap:文档命中检索的个数
maxOverlap:检索条件的个数
2.queryNorm(q)查询的标准查询
这个因素对所有文档都是一样的值,所以它不影响排序结果。
3.tf(t in d) 词频
关键词再某文档出现次数的平方根
比如有个文档叫做"this is book about chinese book", 我的搜索项为"book",那么这个搜索项对应文档的freq就为2,那么tf值就为根号2,即1.4142135
4.IDF 反项文档频率
计算公式:log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5))
docCount:分片中的总文档数量
docFreq:符合搜索条件的文档数
5.Boost 加权因子
设置字段权重加强
6.norm(t,d)
norm(t,d) = docBoost(文档权重)· lengthNorm· ∏ fBoost(字段权重)
lengthNorm = Boost * ( (1.0 / sqrt(numTerms)));
numTerms = Length - NumOverlap;
长度加权因子,目的将同样匹配的文档,长度短的放前面,因为它更符合完全匹配