Elasticsearch之相关性算分

  • 相关性算分
    相关性算分是指文档与查询语句间的相关度(relevance),通过倒排索引可以获取与查询语句相匹配的文档列表,那么如何将最符合用户查询需求的文档放到最前列呢? 本质是一个排序问题,排序的依据是相关性算分。
    相关性算分的几个重要概念如下:
      - Term Frequency(TF)词频,即单词在该文档中出现的次数。词频越高,相关度越高。
      - Document Frequency(DF)文档频率,即单词出现的文档次数。
      - Inverse Document Frequency (IDF)逆向文档频率,与文档频率相反,简单理解为 1/DF。即单词出现的文档数越少,相关度越高。
      - Field-length Norm 文档越短,相关性越高。
  • 算分模型
    ES目前主要有两个相关性算分模型,如下:
      - TF/IDF模型
      - BM25模型,5.X后的默认模型
    TF/IDF模型是Lucene的经典模型,其计算公式如下:
    TF/IDF模型

    可以通过explain参数来查看具体的计算方法,但要注意:
      - es的算分是按照 shard 进行的,即 shard 的分数计算是相互独立的,所以在使用explain 的时候注意分片数
      - 可以通过设置索引的分片数为1来避免这个问题
    image.png

    BM25模型中BM值Best Match ,25指迭代25次才计算方法,是针对TF/IDF的一个优化,其计算公式如下:
    BM25模型
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容