写点什么

Elasticsearch 相关度评分

用户头像
escray
关注
发布于: 2021 年 02 月 26 日
Elasticsearch 相关度评分

Elasticsearch 相关度评分,内容来自 B 站中华石杉 Elasticsearch 顶尖高手系列课程核心知识篇,本文内容似乎有些过时


TF&IDF 算法介绍


relevance score 算法,简单来说,就是计算出一个索引中的文本与搜索文本之间的关联匹配程度


Elasticsearch 使用的是 term frequency/inverse document frequency 算法,简称为 TF/IDF 算法。


Term frequency:搜索文本中的各个词条在 field 文本中出现了多少次,出现次数越多,就越相关


搜索请求:hello world


doc1:hello you, and world is very gooddoc2:hello, how are you
复制代码


Inverse document frequency:搜索文本中的各个词条在整个索引的所有文档中出现了多少次,出现的次数越多,就越不相关


搜索请求:hello world


doc1:hello, today is very gooddoc2:hi world, how are you
复制代码


比如说,在 index 中有 1 万条 document,hello 这个单词在所有的 document 中,一共出现了 1000 次;world 这个单词在所有的 document 中,一共出现了 100 次


那么 doc2 更相关


Field-length norm:field 长度越长,相关度越弱


搜索请求:hello world


doc1:{ "title": "hello article", "content": "babaaba 1万个单词" }doc2:{ "title": "my article", "content": "blablabala 1万个单词,hi world" }
复制代码


hello world 在整个 index 中出现的次数是一样多的


doc1 更相关,因为 title field 更短


_score 是如何被计算出来的


GET /test_index/test_type/_search?explain{  "query": {    "match": {      "test_field": "test hello"    }  }}
复制代码


分析一个 document 是如何被匹配上的


GET /test_index/test_type/6/_explain{  "query": {    "match": {      "test_field": "test hello"    }  }}
复制代码


发布于: 2021 年 02 月 26 日阅读数: 20
用户头像

escray

关注

Let's Go 2017.11.19 加入

在学 Elasticsearch 的项目经理

评论

发布
暂无评论
Elasticsearch 相关度评分