网站301在哪做,江苏建设厅,wap建站程序哪个好,wordpress本地头像Elasticsearch应用#xff08;八#xff09;
1.为什么需要相关性算分
我们在文档搜索的时候#xff0c;匹配程度越高的相关性算分越高#xff0c;算分越高的越靠前#xff0c;但是有时候我们不需要算分越高越靠前我们可能需要手动影响算分来控制顺序比如广告#xff08…Elasticsearch应用八
1.为什么需要相关性算分
我们在文档搜索的时候匹配程度越高的相关性算分越高算分越高的越靠前但是有时候我们不需要算分越高越靠前我们可能需要手动影响算分来控制顺序比如广告百度竞价在ES中可以通过fuction score来手动控制算分
2.用户关心的搜索结果的相关性
是否可以找到所有相关的内容有多少不相关的内容被返回了文档的打分是否合理结合业务需求平衡结果排名
3.如何衡量相关性
Precision查准率尽可能返回较少的无关文档Recall查全率尽量返回较多的相关文档Ranking 是否能够按照相关度进行排序
4.什么是相关性Relevance
搜索的相关性算分描述了一个文档和查询语句匹配的程度。ES 会对每个匹配查询条件的结果进行算分_score。打分的本质是排序需要把最符合用户需求的文档排在前面。ES 5之前默认的相关性算分采用TF-IDF现在采用BM 25 5.TF-IDF与BM25算法对比 6.相关概念
词频TFTerm Frequency
检索词在一篇文档中出现的概率等于检索词出现的次数除以文档的总字数
Stop Word
“的”在文档中出现了很多次但是对贡献相关度几乎没用不应该考虑他们的TF
DF
代表检索词在所有文档中出现的频率
逆向文本频率Inverse Document Frequency
简单说就是log(全部文档数/检索词出现过的文档总数)
字段长度归一值field-length norm
字段的长度是多少字段越短字段的权重越高。检索词出现在一个内容短的title要比同样的词出现在一个内容长的content字段权重更大
度量一条查询和结果文档相关性的简单方法
将搜索中的每一个词的TF相加
7.TF-IDF算法
介绍
TF-IDFterm frequency–inverse document frequency是一种用于信息检索与数据挖掘的常用加权技术
TF-IDF被公认为是信息检索领域最重要的发明除了在信息检索在文献分类和其他先关领域也有着非常广泛的应用
历史
IDF的概念最早是剑桥大学的“斯巴克.琼斯”提出
1972年“关键词特殊性的统计解释和它在文献检索中的应用”但是没有从理论上解释IDF应该是用log全部文档数/检索词出现过的文档总数而不是其他函数也没有做进一步的研究
19701980年代萨尔顿和罗宾逊进行了进一步的证明和研 究并用香农信息论做了证明
现代搜索引擎对TF-IDF进行了大量细微的优化本质上就是将TF求和变成了加权求和
Lucene中的TF-IDF的评分公式 8.BM25算法
介绍
BM25 就是对 TF-IDF 算法的改进对于 TF-IDF 算法TF(t)部分的值越大整个公式返回的值就会越大。BM25 就针对这点进行来优化随着TF(t) 的逐步加大该算法的返回值会趋于一个数值
公式 9.通过explain查看TF-IDF
GET /[index]/_search
{explain:true,query:{match:{content:elasticsearch}}
}10.Boosting
什么是Boosting
Boosting是控制相关度的一种手段
参数Boosting的含义
当boost 1时打分的相关度相对性提升当0boost1时打分的权重相对性降低当boost0时贡献负分
应用场景
希望包含了某项内容的结果不是不出现而是排序靠后
示例
返回匹配positive查询的文档并降低匹配negative查询的文档相似度分。这样就可以在不排除某些文档的前提下对文档进行查询,搜索结果中存在只不过相似度分数相比正常匹配的要低
GET /[index]/_search
{query:{boosting:{positive:{term:{content:elasticsearch}},negative:{term:{content:like}},negative_boost:0.2}}
}