apache lucene默认的评分公式解释

查询相关性,文档对查询的得分是如何计算出来的,什么是文档得分?它是一个刻画文档与查询匹配程度的参数,lucene的默认评分机制:TF/IDF(词频/逆文档频率)算法

1.1  何时文档被匹配上(文档得分的因子)

  • 文档权重(document boost):索引期赋予某个文档的权重值
  • 字段权重(field boost):查询期赋予某个字段的权重值
  • 协调因子(coord):基于文档中词项命中个数的协调因子,一个文档命中了查询中词项越多,得分越高
  • 逆文档频率(inverse document frequency):一个基于词项的因子,用来告诉评分公式该词项有多么罕见,逆文档频率越低,词项越罕见,评分公式利用该因子为包含罕见词频的文档加权
  • 长度范数(length norm):每个字段的基于词项个数的归一化因子(在索引期计算出来并存储在索引中),一个字段包含的词项数越多,该因子的权重越低,这是意味着lucene评分公式更喜欢包含更少词项的字段
  • 词频(term frequency):一个基于词项的因子,用来表示一个词项在某个文档中出现了多少次,词频越高  文档的得分越高
  • 查询范数(query norm):一个基于查询的归一化因子,它等于查询中词项的权重平分和,查询范数使得不同的查询的得分能相互比较,尽管这种比较通常是困难而且不可行的

1.2 TF/IDF 评分公式

     公式不好书写就不写了

     得分的基本规则:
  1.  越多罕见的词项被匹配上,文档的得分越高
  2. 文档字段越短(包含更少的词项),文档得分越高
  3. 权重越高(不论是索引期还是查询器赋予的权重值),文档得分越高

1.3    es 是如何评分的

    es使用了lucene的评分功能,但是我们可以替换默认的评分算法,用户也可以使用各种不同的查询类型以精确的控制文档评分的计算
    包括(custom_boost_factor查询    constant_score查询    custom_score查询等),还可以通过脚本来改变文档的得分,还可以使用二次得分
    功能
      

你可能感兴趣的:(ealsticSearch)