ElasticSearch:常用的基础查询与过滤器
match_all(获取所有索引文档)
quert_string(获取包含指定关键字文档)
默认查询_all字段,_all字段是由所有字段组合而成的,可以通过description:关键字,获取通过请求的时候来设置default_field。可使用AND和OR这种布尔操作符来组合词条搜索,也可以使用减号(-)来排除文档。
缺点:由于query_string可以通过组合条件来获取所有索引的文档,建议替换成term,terms,match或者multi_match查询
term查询和term过滤器
term可以指定搜索的文档字段和关键词(被搜索的关键词是没有经过分析的,所以返回的文档是精准匹配关键词的)term过滤器也可以是返回的结果包含指定关键词,但是无需计算得分,所以可以使用match_all,返回的所有文档_score都是1.0分。
terms查询
与term查询相似,允许查询多个关键词,通过minimum_should_match设置最低匹配几个关键词。
match查询
查询指定字段的关键词,也可以查询_all字段,match查询有多中方式,最常见的是布尔查询和词组。
1、布尔查询
默认情况下,match查询使用布尔行为和OR操作符。例如,如果搜索文本“Elasticsearch Denver”,Elasticsearch 会搜索“Elasticsearch OR Denver”,同时匹配“Elasticsearch Amsterdam’和“Denver Clojure Group”聚合分组。为了搜索同时包含“Elasticsearch” 和“Denver” 关键词的结果,将match字段的name修改为一个映射,并将operator字段设置为and,达到改变操作符的目的。
2、词组
在文档中搜索指定的词组时,phrase查询是非常有用的,每个单词的位置之间可以留有余地。这种余地称作slop,用于表示词组中多个分词之间的距离。假设你试图记起某个聚合分组的名字,只记得“Enterprise” 和“London” 两个词,但是不记得名字其余的部分了。你可以搜.索词组“enterprise london”,将slop设置为1或者2,而不是默认的0,如此-一来,没有必要知道分组的精确标题,就可以寻找包含该词组的结果。
phrase_prefix查询匹配最后一个关键词。在下面的例子中,phrase_ prefix查询使用的是“elasticsearch den”。Elasticsearch 使用“den”文本进行前缀匹配,查找所有name字段,发现那些以“den” 开始的取值(如“Denver”)。 由于产生的结果可能是个很大的集合,需要限制扩展的数量。
使用multi_ match来匹配多个字段
尽管很容易联想到,multi_ match查询和搜索单字段中多个匹配的词条查询,它们的行为表现会非常相像,但是两者的行为还是有细微的区别。多字段匹配允许你搜索多个字段中的值。在聚合的案例中,这一点非常有用,可以同时在分组的名称和描述中搜索某个字符串。
ElasticSearch:常用的基础查询与过滤器的更多相关文章
- 实战ELK(7)ElasticSearch常用的基本查询语句
1.term 过滤 term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经切词的文本数据类型): { "term": { "d ...
- Elasticsearch 常用基本查询
安装启动很简单,参考官网步骤:https://www.elastic.co/downloads/elasticsearch 为了介绍Elasticsearch中的不同查询类型,我们将对带有下列字段的文 ...
- ElasticSearch 常用查询语句
为了演示不同类型的 ElasticSearch 的查询,我们将使用书文档信息的集合(有以下字段:title(标题), authors(作者), summary(摘要), publish_date(发布 ...
- ElasticSearch(6)-结构化查询
引用:ElasticSearch权威指南 一.请求体查询 请求体查询 简单查询语句(lite)是一种有效的命令行_adhoc_查询.但是,如果你想要善用搜索,你必须使用请求体查询(request bo ...
- Elasticsearch 常用API
1. Elasticsearch 常用API 1.1.数据输入与输出 1.1.1.Elasticsearch 文档 #在 Elasticsearch 中,术语 文档 有着特定的含义.它是指最顶 ...
- Ext常用开发基础知识
Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...
- Mego开发文档 - 基础查询
基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...
- Linux最常用的基础命令
Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存64bit=内存的最大 ...
- 实战ELK(2) ElasticSearch 常用命令
1.Cluster Health 集群状态 curl 'localhost:9200/_cat/health?v' yellow代表分片副本确实,因为我们现在只有一台机器. curl 'localho ...
随机推荐
- TencentTbs腾讯浏览服务 x5内核使用
Tencent TBS (下简称TBS) 腾讯浏览服务 What is it? 百度百科解释: 腾讯浏览服务(Tencent Browsing Service,以下简称TBS),由腾讯X5浏览服务升级 ...
- C语言入门6-选择结构--f语句-switch
一. 什么是选择结构? 选择结构,也称为分支结构!! 选择结构就是根据 给定的判定条件,判断结果, 并根据 判断的结果 来控制程序的流程 (流程图中, 菱形框 是有来判断的 , ...
- 总结暨JAVAWEB学习开篇(一)
匆匆,距上一篇博客已经过去7月有余,遂作文一篇总结暨JAVAWEB学习开篇. 1. 啃英文新概念.在多方讨教英语大佬后改变学习方式,通过背诵英文书籍以及多听英文录音来学习,效果还不错(等真正有成效了跟 ...
- C++ 过滤出字符串的中文(GBK,UTF-8)
最近在处理游戏敏感词之类的东西,为了加强屏蔽处理,所以需要过滤掉字符串中的除汉字之外的是其他东西如数字,符号,英文字母等. 首先我查阅资料并写了个函数: 示例:返回输入字符串中汉字的个数: std:: ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
- java流压缩图片
整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享.首先,要压缩的图片格式不能说动态图片,你可以使用bmp.png.gif等,至于压缩质量,可以通过BufferedImage来指定 ...
- rgw main
说明关闭标准的错误输出,而使用标准输出替换.这是因为FCGX 将信息输出到了STDOUT. 参数: 默认参数 –debug-rgw 和 –keystring , 如果 argv 中具备输入参数, 则通 ...
- 【C++】string::substr函数
形式:s.substr(p, n) 返回一个string,包含字符串s中从p开始的n个字符的拷贝(p的默认值是0,n的默认值是s.size() - p,即不加参数会默认拷贝整个s) int main( ...
- 【0806 | Day 9】异常处理/基本的文件操作
一.异常处理 异常即报错,可分为语法异常和逻辑异常 1. 语法异常 举个栗子 if #报错 syntaxerror 0 = 1 #报错 syntaxerror ... 正经地举个栗子 print(1) ...
- PDF.js 详情解说
pdf.js资源下载 点我下载 自定义默认加载的pdf资源 在web/view.js中我们可以通过DEFAULT_URL设置默认加载的pdf.通过上面代码我们也可以看出来可以通过后缀名来指定加载的pd ...