死磕BM25

2019-05-15  本文已影响0人  菜鸟_猿

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;

  长度加权因子,目的将同样匹配的文档,长度短的放前面,因为它更符合完全匹配

上一篇 下一篇

猜你喜欢

热点阅读