相关度评分TF&IDF算法

相关度评分TF&IDF算法

1、算法介绍

relevance score算法(相关度评分算法),简单来说,就是计算出,一个索引中的文本,与搜索文本关键词,他们之间的关联匹配程度

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

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

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

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

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

搜索请求:hello world

doc1:hello you, and world is very good
doc2:hello, how are you

doc1 相对doc2 的相关度分高,因为同时包含了 "hello" 和"world",而doc2只包含了”hello”。

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

搜索请求:hello world

doc1:hello, today is very good
doc2:hi world, how are you

比如说,在index中有1万条document,hello这个单词在所有的document中,一共出现了1000次;world这个单词在所有的document中,一共出现了100次,则对于doc2的相关度评分更高与doc1.

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

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

,但是由于doc1的title field更短,所以doc1更相关。

2、_score是如何被计算出来的

结果:4条数据

3、分析一个document是否被匹配上

Last updated