elasticsearch|Elasticsearch-14.搜索的相关性算分和Query & Filtering 与多字符串多字段查询
Elasticsearch
搜索的相关性算分
相关性和相关性算分
- 相关性- Relevance
- 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。ES 会对每个匹配查询条件的结
果进行算分_ score - 打分的本质是排序,需要把最符合用户需求的文档排在前面。ES5之前,默认的相关性算分
采用TF-IDF,现在采用BM 25
文章图片
- 搜索的相关性算分,描述了一个文档和查询语句匹配的程度。ES 会对每个匹配查询条件的结
- Term Frequency: 检索词在一 篇文档中出现的频率
- 检索词出现的次数除以文档的总字数
- 度量一条查询和结果文档相关性的简单方法:简单将搜索中每一个词的TF进行相加
- TF(区块链) + TF(的) + TF(应用)
- Stop Word
- “的”在文档中出现了很多次,但是对贡献相关度几乎没有用处,不应该考虑他们的TF
- DF: 检索词在所有文档中出现的频率
- 区块链”在相对比较少的文档中出现
- “应用”在相对比较多的文档中出现
- “Stop Word”在大量的文档中出现
- Inverse Document Frequency :简单说= log(全部文档数/检索词出现过的文档总数)
- TF-IDF本质上就是将TF求和变成了加权求和
- TF(区块链)*IDF(区块链) + TF(的)*IDF(的)+ TF(应用)*IDF(应用)
文章图片
TF-IDF的概念
- TF-IDF 被公认为是信息检索领域最重要的发明
- 除了在信息检索, 在文献分类和其他相关领域有着非常广泛的应用
- IDF的概念,最早是剑桥大学的“斯巴克.琼斯”提出
- 1972年一“关键词特殊性的统计解释和它在文献检索中的应用”
- 但是没有从理论上解释IDF应该是用log(全部文档数/检索词出现过的文档总数),而不是其他函
数。也没有做进一步的研究
- 1970, 1980年代萨尔顿和罗宾逊,进行了进一步的证明和研究,并用香农信息论做了证明
- http:/ /www.staff.city.ac.uk/~sb317/papers/foundations bm25_ review.pdf
- 现代搜索引擎,对TF-IDF进行了大量细微的优化
文章图片
BM 25
文章图片
定制Similarity
文章图片
通过Explain API查看TF- -IDF
文章图片
Boosting Relevance
文章图片
Query & Filtering 与多字符串多字段查询 Query Context & Filter Context
文章图片
条件组合
- 假设要搜索一 -本电影,包含了以下一些条件
- 评论中包含了Guitar, 用户打分高于3分,同时上映日期要在1993与2000年之间
- 这个搜索其实包含了3段逻辑,针对不同的字段
- 评论字段中要包含Guitar /用户评分大于3 / .上映日期日期需要在给定的范围
- 同时包含这三个逻辑,并且有比较好的性能?
- 复合查询: bool Query
- 一个bool查询,是一个或者多个查询子句的组合
- 总共包括 4种子句。其中2种会影响算分,2种不影响算分
- 相关性并不只是全文本检索的专利。也适用于yes |no的子句,匹配的子句越多,相关性评分
越高。如果多条查询子句被合并为一条复合查询语句,比如bool查询,则每个查询子句计算
得出的评分会被合并到总的相关性评分中。
文章图片
bool查询语法
【elasticsearch|Elasticsearch-14.搜索的相关性算分和Query & Filtering 与多字符串多字段查询】
文章图片
如何解决结构化查询-“ 包含而不是相等’的问题
文章图片
增加计数字段,使用bool查询解决
文章图片
Filter Context一不影响算分
文章图片
Query Context -影响算分
文章图片
bool嵌套
文章图片
查询语句的结构,会对相关度算分产生影响
文章图片
- 同一层级下的竞争字段,具有有相同的权重
- 通过嵌套 bool查询,可以改变对算分的影响
文章图片
Not Quite Not
文章图片
Boosting Query
文章图片
推荐阅读
- elasticsearch|Elasticsearch-18.综合排序:Function Score Query 优化算分和Term&PhraseSuggester
- elasticsearch|Elasticsearch-19.自动补全与基于上下文的提示与跨集群搜索和跨集群搜索
- 中间件|(ElasticSearch02)day80分布式查漏补缺
- java|win7下Elasticsearch、Kibana安装
- 微服务专题笔记|ElasticSearch——DSL查询及结果处理
- 如何使用Jupyter Notebook(-终极指南)
- Elasticsearch掰开揉碎第3篇windows环境搭建
- Elasticsearch掰开揉碎第2篇linux环境搭建
- 学习|学习笔记(深度学习(2)——BP神经网络)