ElasticSearch URI 查询
公号:码农充电站pro
主页:https://codeshellme.github.io
1,URI 查询格式
URI 查询的一般格式如下:
GET /index_name/_search?q=key:val&df=title&sort=year:desc&from=0&size=10
{
"profile":"true"
}
其中的参数代表的含义如下:
- q:用于指定查询语句,它可以是一个键值对,也可以只有一个 val。
- key 表示在哪个字段中查询。
- val 表示查询的内容。
- df:查询中未定义字段前缀时使用的默认字段。如果不指定,默认会对所有字段进行查询。
- sort:指定排序规则。
- from:与 size 一起用于分页。
- profile:用于查看查询执行的详细过程,可参考这里。
- 更多的 URI 参数可参考这里。
2,范查询
如果查询时没有指定字段,就会在所有的字段中查询,这叫做范查询。例如 q=2012
。
3,Term:单词查询
Term 查询不需要用引号引住。比如 q=A B
表示包含 A
或 B
。
4,Phrase:词组查询
Phrase 查询需要用引号引住。
比如 q="A B"
,表示包含 "A B"
,并且要求顺序一致,实际上此时 "A B"
会被认为是一个单词。
5,查询分组
比如 q=title:A B
,表示的是 title:A
或 B
,会在 title
字段中查询 A
,在所有的字段中查询 B
。
而 q=title:(A B)
,只会在 title
中查询 A
或 B
。(A B)
用括号括住,表示一个分组。
6,布尔查询
在使用 {"profile":"true"}
查看执行过程时,会有两个概念 must
和 must_not
:
must
:表示必须存在,用+
表示。must not
:表示必须不存在,用-
表示。
布尔查询包含下面三种:
- AND:且,比如
q=title:(A AND B)
,表示+title:A +title:B
,表示必须包含A
,也必须包含B
。 - OR:或,比如
q=title:(A OR B)
,等同于q=title:(A B)
,表示title:A title:B
,表示title
中包含A
或包含B
。 - NOT:非,比如
q=title:(A NOT B)
,表示title:A -title:B
,表示包含A
,但不能包含B
。
也可以在查询中直接使用 +
或 -
, +
用 %2B
(URL 编码)表示,比如:
q=title:(%2BA -B)
,表示必须包含 A,不能包含 B。q=title:(-A -B)
,表示不能包含 A,也不能包含 B。q=title:(-A %2BB)
,表示不能包含 A,但必须包含 B。q=title:(A %2BB)
,其实等价于q=title:(%2BB)
,表示必须包含 B,A 无所谓。
7,范围查询
用于数字类型:
[]
表示闭区间{}
表示开区间
使用的时候用括号括住,比如:
year:({2000 TO 2020])
,表示2000 < year <= 2020
。year:([* TO 2018])
,表示year <= 2018
。year:({2016 TO *})
,表示year > 2016
。
8,通配符与正则查询
在通配符查询中:
?
代表 1 个字符*
代表 0 或多个字符
一般通配符查询效率较低,占内存大,所以不建议使用,特别是放在最前面。
通配符查询示例:
title:mi?d
title:be*
正则表达式查询示例:
title:[bt]oy
9,模糊匹配与近似查询
示例:
title:beautifl~1
title:"Lord Rings"~2
(本节完。)
推荐阅读:
Kibana,Logstash 和 Cerebro 的安装运行
欢迎关注作者公众号,获取更多技术干货。
ElasticSearch URI 查询的更多相关文章
- ElasticSearch DSL 查询
公号:码农充电站pro 主页:https://codeshellme.github.io DSL(Domain Specific Language)查询也叫做 Request Body 查询,它比 U ...
- Elasticsearch URI search 查询语法整理
Elasticsearch URI search 一.请求体查询与空查询 1. 请求体查询(request body search) 简单查询语句(lite)是一种有效的命令行adhoc查询.但是,如 ...
- 分布式搜索引擎Elasticsearch的查询与过滤
一.写入 先来一个简单的官方例子,插入的参数为-XPUT,插入一条记录. curl -XPUT 'http://localhost:9200/test/users/1' -d '{ "use ...
- 002_分布式搜索引擎Elasticsearch的查询与过滤
一.写入 先来一个简单的官方例子,插入的参数为-XPUT,插入一条记录. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 curl -XPUT 'http:/ ...
- 【转】elasticsearch的查询器query与过滤器filter的区别
很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单- 当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...
- 基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(1)
本文描述了一个系统,功能是评价和抽象地理围栏(Geo-fencing),以及监控和分析核心地理围栏中业务的表现. 技术栈:Spring-JQuery-百度地图WEB SDK 存储:Hive-Elast ...
- Elasticsearch Kibana查询语法
Elasticsearch Kibana查询语法 2018年06月03日 23:52:30 wangpei1949 阅读数:3992 Elasticsearch Kibana Discover的搜 ...
- ElasticSearch—分页查询
ElasticSearch查询—分页查询详解 Elasticsearch中数据都存储在分片中,当执行搜索时每个分片独立搜索后,数据再经过整合返回.那么,如何实现分页查询呢? 按照一般的查询流程来说,如 ...
- Elasticsearch 邻近查询示例
Elasticsearch 邻近查询示例(全切分分词) JAVA API方式: SpanNearQueryBuilder span = QueryBuilders.spanNearQuery(); s ...
随机推荐
- SpringMVC请求参数的获取方式
一.GET请求参数获取 1. 通过HttpServletRequest获取参数 2. 直接方法参数获取 3. RequestParam注解方式获取请求参数 4. Bean方式获取参数 5. Model ...
- Spark练习之创建RDD(集合、本地文件),RDD持久化及RDD持久化策略
Spark练习之创建RDD(集合.本地文件) 一.创建RDD 二.并行化集合创建RDD 2.1 Java并行创建RDD--计算1-10的累加和 2.2 Scala并行创建RDD--计算1-10的累加和 ...
- checkAll操作
//全部勾选 function checkAll(obj) { var cols = document.getElementsByName('cols'); for ( var i = 0; null ...
- PA防火墙抓包结果显示重传(re-transmission)
问题起因: 部分内网服务器调用外网站点抓取图片时出现缓慢及超时现象. 由于是由内向外方向的访问,且通过的应用层设备只有防火墙:而且用其他网段测试机测试的时候发现并没有上述访问缓慢或超时. 从防火墙抓包 ...
- CentOS 7 部署redis
1.下载redis: 地址:http://download.redis.io/releases/: 选择需要下载的版本,然后通过ssh工具导入到centos中,这里放到了/usr/local; 解压文 ...
- HHKB Programming Contest 2020【ABCE】
比赛链接:https://atcoder.jp/contests/hhkb2020/tasks A - Keyboard 代码 #include <bits/stdc++.h> using ...
- SCZ 20170812 T2 MFS
题面照例十分暴力,我再次重写一下吧-- 题目描述 有\(n\)个数构成的数列\(A\)元素为\(a_i\),你要构造一个数列\(B\),元素为\(b_i\),使得满足\(b_{i}>0,a_{i ...
- 【uva 12219】Common Subexpression Elimination(图论--树+自定义比较器+映射+递归)
题意:如题,用表达式树来表示一个表达式,且消除公共的部分,即用编号表示.编号 K 定义为表达式第 K 个出现的字符串. 解法:先构造表达式树,给每棵子树用(string,left_son,right_ ...
- UVA - 12295 最短路(迪杰斯特拉)——求按对称路线最短路条数
题意: 给你一个n,然后给你一个n*n的正方形w[i][j],你需要找到一个从(1,1)点走到(n,n)点的最短路径数量.而且这个路径必须按照y=x对称 题解: 我们把左上角的点当作(0,0)点,右下 ...
- Cell 动态行高文字显示不全问题探索
目录 问题概述 一.新建工程 二.尝试复现问题 尝试解决 修改contentLblBtmCon优先级为High(750) 修改contentLblBtmCon优先级为Low(250) 小结 其他解决思 ...