相关性 -Relevance
-
搜索的相关性,描述了一个文档和查询语句匹配的程度,ES会对每个匹配查询条件的结果进行算分
-
打分的本质是排序,需要把最符合用户需求的文档排在前面.ES5之前,默认的相关性算分采用TF-IDF,现在采用BM25
-
"区块链"在文档1,2,3中出现
-
"的"在文档2,3,4,5.....
-
"应用"在文档2,3,4......
词频TF
-
Term Frequency:检索词在一篇文章中出现的概率
-
检索词出现的次数除以文档的总字数(文档的字数长短有关)
-
-
度量一条查询和结果文档相关性的简单方法:简单将搜索中的每一个词的TF进行相加
-
TF(区块链) + TF(的)+ TF(应用)
-
-
Stop Word
-
"的"在文档中出现了很多次,但是对于贡献相关度几乎没有什么用处,不应该考虑他们的TF
-
逆文档频率 IDF
-
DF:检索词在所有文档中出现的概率
-
"区块链"在相对比较少的文档中出现
-
"应用"在相对比较多的文档中出现
-
"Stop Word"在大量的文档中出现
-
-
IDF:简单说=log(全部文档数/检索词出现过的文档总数)
-
TF-IDF本质上就是将TF求和变成了加权求和
Lucene中的 TF-IDF评分公式
通过Explain API查看 TF-IDF
Boosting Relevance
符合查询Boost Query的使用可以查看这里
- Boosting是控制相关度的一种手段
- 在索引,字段或者查询子条件中都可以设置
- 参数boost的含义
- 当boost >1 时,打分的相关度算分相对性提升
- 0<当boost <1 时,打分的相关度算分相对性降低
- 当boost<0时,贡献负分