笔记十九:搜索的相关性算分

相关性和相关性算分

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

ES笔记十八:搜索的相关性算分

词频TF

  • 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(应用)

ES笔记十八:搜索的相关性算分

TF-IDF 的概念

  • TF-IDF 被公认为是信息检索领域最重要的发明
  • 除了在信息检索,再文献分类和其他相关领域有着非常广泛的应用
  • IDF的概念,最早是剑桥大学的“斯巴达.琼斯”提出
    • 1972年 ——“关键词特殊性的统计解释和它在文献检索中的应用”
    • 但是没有从理论上件事IDF应该是用log(全部文档书 / 检索词出现过的文档总数),而不是其他函数。也没有做进一步的研究
  • 1970,1980年代萨尔顿和罗宾逊,进行了进一步的证明和研究,并用香农信息做了证明
  • 现代搜索引擎,对TF-IDF进行了大量细微的优化

Lucene 中的TF-IDF评分公式

ES笔记十八:搜索的相关性算分

BM25

ES笔记十八:搜索的相关性算分

定制 Similarity

ES笔记十八:搜索的相关性算分

通过Explain API 查看 TF-IDF

demo

PUT testscore/_bulk
{"index":{"_id":1}}
{"content":"we use Elasticsearch to power the search"}
{"index":{"_id":2}}
{"content":"we like elasticsearch"}
{"index":{"_id":3}}
{"content":"The scoring of documents is caculated by the scoring formula"}
{"index":{"_id":4}}
{"content":"you know, for search"}
//查询
POST /testscore/_search
{
  "explain": true,
  "query": {
    "match": {
     // "content":"you"
      "content": "elasticsearch"
      //"content":"the"
      //"content": "the elasticsearch"
    }
  }
}

Boosting Relevance

  • Boosting 是控制相关度的一种手段
    • 索引,字段或查询子条件
  • 参数boost的含义
    • 当 boost > 1时,打分的相关度相对性提高
    • 当 0 < boost < 1 时,打分的权重相对性降低
    • 当 boost < 0 时,贡献度负分
POST testscore/_search
{
    "query": {
        "boosting" : {
            "positive" : {
                "term" : {
                    "content" : "elasticsearch"
                }
            },
            "negative" : {
                 "term" : {
                     "content" : "like"
                }
            },
            "negative_boost" : 0.2
        }
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
快乐就是解决一个又一个的问题!
CrazyZard
讨论数量: 3

打分,不是打饭

4年前 评论
CrazyZard (楼主) 4年前
panglongxia (作者) 4年前
CrazyZard (楼主) 4年前
panglongxia (作者) 4年前

QueryFiltering与多字符串多字段查询

单字符串多字段查询DisMaxQuery

单字符串多字段查询:MultiMatch

多语言及中文分词与检索

跨集群搜索

剖析分布式查询及相关性评分

排序及Doc Values & Fielddata

分页与遍历 - From, Size, Search_after & Scroll API

作用范围与排序

对象及Nested对象

Elasticsearch 数据建模实例

第二部分总结与测验

这几部分笔记我都没找到

因为我刚看完第二部分,后面还没看,所以还不清楚

4年前 评论
CrazyZard

@panglongxia 已整理 第二部分的内容 ,第三部分的内容我在想是否是重新开始新的板块

4年前 评论
panglongxia 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!