Elasticsearch 不同的搜索类型之间的区别
1、match 轻量级搜索
1 GET /wymlib/_search 2 3 { 4 "query": { 5 "match": { 6 "title": "王阳明" 7 } 8 } 9 }
上面的查询匹配就会进行分词,比如"王阳明"会被ik分词器分为"王阳明" ,"阳明", "王","阳","明" 那么所有包含这些词中的一个或多个的文档就会被搜索出来。并且根据lucene的评分机制(TF/IDF)来进行评分。
2、match_phrase 短语搜索
1 GET /wymlib/_search 2 3 { 4 "query": { 5 "match_phrase": { 6 "title": "王阳明" 7 } 8 } 9 }
match_phrase要求只匹配上"王阳明"这个短语,完全匹配可能比较严,我们会希望有个可调节因子,少匹配一个也满足,那就需要使用到slop
1 { 2 "query": { 3 "match_phrase": { 4 "title" : { 5 "query" : "王阳明", 6 "slop" : 1 7 } 8 } 9 } 10 }
3、multi_match 多字段匹配
如果我们希望两个或两个以上的字段进行匹配,其中一个字段能匹配上就满足的话,使用multi_match
1 { 2 "query": { 3 "multi_match": { 4 "query": "王阳明第三卷", 5 "fields": [ 6 "title", 7 "keywords", 8 "author" 9 ] 10 } 11 } 12 }
multi_match中有三种类型即: best_fields 、 most_fields 和 cross_fields (最佳字段、多数字段、跨字段)
1) 我们希望完全匹配的文档占的评分比较高,则需要使用best_fields,multi_match默认是best_fields
1 { 2 "query": { 3 "multi_match": { 4 "query": "王阳明", 5 "fields": [ 6 "title", 7 "yearAlias" 8 ], 9 "minimum_should_match": "70%" 10 } 11 } 12 }
2) 我们希望越多字段匹配的文档评分越高,就要使用most_fields
{"query": {"multi_match": {"query": "王阳明","type": "most_fields","fields": ["title","keywords"]}} }
3) 我们会希望这个词条的分词词汇是分配到不同字段中的,那么就使用cross_fields
1 { 2 "query": { 3 "multi_match": { 4 "query": "王阳明", 5 "fields": [ 6 "title", 7 "keywords" 8 ], 9 "type": "cross_fields" 10 } 11 }, 12 "highlight": { 13 "fields": { 14 "title": { 15 "pre_tags": ["<a>" ], 16 "post_tags": [ "</a>"] 17 }, 18 "keywords": { 19 "pre_tags": ["<b>" ], 20 "post_tags": ["</b>" ] 21 } 22 } 23 } 24 }
上面查询语句中,包含了高亮显示结果属性:highligt
4、term 精确值查找
1 { 2 "query": { 3 "term": { 4 "title": "王阳明" 5 } 6 } 7 }
与match查询类似,但term是精确查找,代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇,但是 term 和 terms 是 必须包含(must contain) 操作,而不是必须精确相等(must equal exactly),当查询 jack 时,[jack] 和[jack,jone]两条数据都会被找到
转载于:https://www.cnblogs.com/hoojjack/p/8600230.html
Elasticsearch 不同的搜索类型之间的区别相关推荐
- 【整理】Python中的re.search和re.findall之间的区别和联系 + re.finall中带命名的组,不带命名的组,非捕获的组,没有分组四种类型之间的区别
之前自己曾被搞晕过很多次. 后来使用这些函数次数多了之后,终于比较清楚的弄懂了两者之间的区别和关系了. 尤其是一些细节方面的注意事项了. 在看下面的总结和代码之前,请先确保你对如下基本概念已经有所了解 ...
- MM模块几个移动类型之间的区别
今天来给大家说说MM模块移动类型102 122 166之间的关系和异同点. 一.总述 1.102 主要用于处理因操作人员人为原因产生的错误(如录入数量等等) 2.122 主要用于处理当月因供应商送 ...
- python中str类型和object类型_pandas str和object类型之间的区别
现象: Numpy区分了str和object类型,其中dtype('S')和dtype('O')分别对应于str和object. 然而,pandas缺乏这种区别 str和object类型都对应dtyp ...
- Elasticsearch搜索类型(SearchType)详解
SearchType详解 es在查询时,可以指定搜索类型为 QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_ ...
- Elasticsearch搜索类型讲解(QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH)...
es在查询时,可以指定搜索类型为QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH.那么这4种搜索 ...
- Elasticsearch搜索类型(query type)详解
es在查询时,可以指定搜索类型为QUERY_THEN_FETCH,QUERY_AND_FEATCH,DFS_QUERY_THEN_FEATCH和DFS_QUERY_AND_FEATCH.那么这4种搜索 ...
- c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别
有人可以解释uint8_t和__u8类型之间的区别吗? 我知道uint8_t是在stdint.h中定义的,并且它们在每个unix系统上都可用. /* Unsigned. */ typedef unsi ...
- 科普向 | Lucene,Solr,Elasticsearch之间的区别和联系
最近有幸研究到了这块领域的内容,而我本人也对于这块非常的感兴趣,所以打算写一篇文章记录一下- 简介 Lucene Lucene是 apache 软件基金会某个项目组的一个子项目,是一个开放源代码的全文 ...
- Lucene,Solr,Elasticsearch之间的区别和联系
https://blog.csdn.net/weixin_44318830/article/details/109166004 简介 Lucene Lucene是 apache 软件基 ...
最新文章
- 远程控制virtual box虚拟机系统的三种方式
- springMVC和Shiro框架整合使用简单示例 【转】
- java开源的cms系统jsp cms系统
- mysql索引类型 优劣_Mysql索引的类型和优缺点详解
- DeepLearningAI 学习笔记 1.1 深度学习概论
- 车主吐槽某电动车保养割韭菜,却遭其总裁公开恐吓?车主:必须视频道歉
- 【Swift 4.0】扩展 WCDB 支持 SQL 语句
- 实训作业 4(界面2)
- 马云点名的工程师,除了几百封求爱信还有13项区块链专利
- 【会议】2009-1-6
- 安装ANSYS19.0的正确方法(附下载)
- 3.15 study 简单移动动画js实现
- 从招聘信息来看,小米、爱奇艺、360甚至芒果TV都要做VR了
- NB无信号以及无法连接网络问题分析及解决
- Qt编译通过,运行时出现the process was ended forcefully的crashed问题
- 如何将几张照片拼成一张?
- 【Oracle】Oracle创建触发器
- C#学习之ASP.NET概述
- 开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
- 中台战略-第三章、全面解读中台
热门文章
- 洪嘉振 计算多体系统动力学pdf_多体动力学演化python入门——quantum many-body scars 和稀疏矩阵后续...
- linux修改vim配色,更改vim配色的具体操作 更改vim配色的图文教程
- 联想rd540服务器怎么装系统,联想RD540加显卡BIOS设置
- python shape函数_Perlin噪声和Python的ctypes
- python异常处理_汇总三大python异常处理、自定义异常、断言原理与用法分析
- 深度学习:神经网络基础知识总结
- 笔记:Tensor RPCA: Exact recovery of corrupted low-rank tensors via convex optimization
- 【杂谈】有三AI知识星球最近都GAN了哪些内容?
- 中国传感器行业应用规模与投资价值分析报告2022版
- 中国药妆行业投资现状与发展策略分析报告2022-2028年