ElasticSearch - 搜索的相关性算分

ElasticSearch - 搜索的相关性算分

八月 27, 2019

相关性和相关性算分

  • 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。 ES会对每个匹配查询条件的结果进行算分_score
  • 打分的本质是排序,需要把最符合用户需求的文档排在前面。ES5之前,默认的相关性算分采用TF-IDF,现在采用BM25

词频 TF

  • Term Frequency:检索词在一篇文档中出现的频率
    检索词出现的次数除以文档的总字数。

  • 度量一条查询和记过文档相关性的简单方法:简单将搜索中每一个词的TF进行相加

  • Stop Word
    “的”在文档中出现了很多次,但是对贡献相关度几乎没有用处,不应该考虑他们的TF

逆文档频率IDF

  • DF:检索词在所有文档中出现的频率

  • Inverse Document Frequency:简单说=log(全部文档数/检索词出现过的文档总数)

  • TF-IDF 本质上就是将TF求和变成了加权求和
    image.png

TF-IDF的概念

  • TF-IDF被公认为是信息检索领域的最重要的发明
  • 除了在信息检索,在文献分类和其他相关领域有着非常广泛的应用
  • 现代搜索引擎,对TF-IDF进行了大量细微的优化

Lucene中的TF-IDF评分公式

image.png

BM25

image.png

  • 从ES 5开始,默认算法改为BM 25
  • 和经典的TF-IDF相比,当TF无限增加时,BM 25算分会趋于一个数值

Bootsing Relevance

  • Boosting是控制相关度的一种手段
    索引,字段或查询自条件
  • 参数boost的含义
    1. 当boost>1时,打分的相关度相对性提升
    2. 当0<boost<1时,打分的权重相对性降低
    3. 当boost<0时,贡献负分