介绍
本章将会介绍搜索的相关性得分,通过对不同算法的介绍来介绍es搜索背后的得分计算。
相关性
- 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。es会对每个查询匹配的结果进行算分
- 打分的本质是排序,需要把最符合用户搜索预期的结果放在最前面。es5之前采用的相关性算分为TF-IDF,现在采用BM25
词频
- Term Frequency:检索词在一篇文档中出现评率
-- 检索词出现的次数除以文档包含的总字数 - 度量一条查询和结果文档相关性的简单方法:将搜索中的每一个词的TF进行相加就行了
- Stop World
-- 对于文档中出现的the,is等词,适当的予以过滤
逆文档频率IDF
- DF:检索词在所有文档中出现的频率
- Inverse Document Frequency:= log(所有文档数/检索词出现过的文档总数)
- TF-IDF本质上是将TF求和变成加权求和
TF-IDF
-
公式
Lucene打分公式 - TF-IDF是被公认的信息检索领域最重要的发明
- 除了在信息检索领域,在文献分类,和其他相关领域也有着非常广泛的应用
- 现代搜索引擎对TF-IDF进行了大量使用和优化
BM25
- 从ES5之后,默认算法改为BM 25
- 和经典的TF-IDF相比,当TF无线增加时,BM25并不会像TF-IDF无线增大
总结
本章通过介绍词频和逆文档频率,来介绍了ES的两种相关性得分,BM25和TF-IDF,其中BM25为ES5之后使用;TF-IDF为ES5之前的相关性算分。
网友评论