0
点赞
收藏
分享

微信扫一扫

搜索的相关性算分

北冥有一鲲 2022-05-02 阅读 83

相关性 -Relevance

  • 搜索的相关性,描述了一个文档和查询语句匹配的程度,ES会对每个匹配查询条件的结果进行算分

  • 打分的本质是排序,需要把最符合用户需求的文档排在前面.ES5之前,默认的相关性算分采用TF-IDF,现在采用BM25

  • "区块链"在文档1,2,3中出现

  • "的"在文档2,3,4,5.....

  • "应用"在文档2,3,4......

词频TF

  • Term Frequency:检索词在一篇文章中出现的概率

    • 检索词出现的次数除以文档的总字数(文档的字数长短有关)

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

    • TF(区块链) + TF(的)+ TF(应用)

  • Stop Word

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

逆文档频率 IDF

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

    • "区块链"在相对比较少的文档中出现

    • "应用"在相对比较多的文档中出现

    • "Stop Word"在大量的文档中出现

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

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

Lucene中的 TF-IDF评分公式

通过Explain API查看 TF-IDF

Boosting Relevance

符合查询Boost Query的使用可以查看这里

  • Boosting是控制相关度的一种手段
    • 在索引,字段或者查询子条件中都可以设置
  • 参数boost的含义
    • 当boost >1 时,打分的相关度算分相对性提升
    • 0<当boost <1 时,打分的相关度算分相对性降低
    • 当boost<0时,贡献负分 
举报

相关推荐

0 条评论