搜索相关性算分

相关性和相关性算分

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

词频

  • Term Frequency :检索词在一篇文档中出现的频率
    • 检索词出现的次数除以文档的总字数
  • 度量一条查询和结果文档相关性的简单方法,简单将搜索中每一个词的TF进行相加
    • TF(区块链) + TF(的)+ TF(应用)
  • Stop Word
    • “的” 在文档中出现了很多次,但是对贡献相关度几乎没有用处,不应该考虑他们的TF

逆文档频率IDF

  • DF :检索词在所有文档中出现的频率
    • “区块链” 在相对比较少的文档中出现
    • "应用"在相对比较多的文档中出现
    • "Stop Word"在大量的文档中出现
  • Inverse Document Frequency : 简单说 = log(全部文档数/检索词出现过的文档总数)
  • TF-IDF 本质上就是将TF求和变成加权求和
    • TF(区块链) * IDF(区块链) + TF(的) * IDF(的) + TF(应用) * IDF(应用)
      搜索相关性算分
      搜索相关性算分

Lucene中的TF - IDF 评分公式

搜索相关性算分

BM25

搜索相关性算分

搜索相关性算分

Boosting Relevance

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