相关性和相关性算分
- 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。 ES会对每个匹配查询条件的结果进行算分_score
- 打分的本质是排序,需要把最符合用户需求的文档排在前面。ES5之前,默认的相关性算分采用TF-IDF,现在采用BM25
词频 TF
Term Frequency:检索词在一篇文档中出现的频率
检索词出现的次数除以文档的总字数。度量一条查询和记过文档相关性的简单方法:简单将搜索中每一个词的TF进行相加
Stop Word
"的"在文档中出现了很多次,但是对贡献相关度几乎没有用处,不应该考虑他们的TF
逆文档频率IDF
DF:检索词在所有文档中出现的频率
Inverse Document Frequency:简单说=log(全部文档数/检索词出现过的文档总数)
-
TF-IDF 本质上就是将TF求和变成了加权求和
TF-IDF的概念
- TF-IDF被公认为是信息检索领域的最重要的发明
- 除了在信息检索,在文献分类和其他相关领域有着非常广泛的应用
- 现代搜索引擎,对TF-IDF进行了大量细微的优化
Lucene中的TF-IDF评分公式
BM25
- 从ES 5开始,默认算法改为BM 25
- 和经典的TF-IDF相比,当TF无限增加时,BM 25算分会趋于一个数值
Bootsing Relevance
- Boosting是控制相关度的一种手段
索引,字段或查询自条件 - 参数boost的含义
- 当boost>1时,打分的相关度相对性提升
- 当0<boost<1时,打分的权重相对性降低
- 当boost<0时,贡献负分