ES的查询有query、URL两种方式,一种是通过REST请求URI发送检索参数,另一种是通过REST请求体发送检索参数。
1、URL方式
1.1、语法
1 | curl [ -s][ -g][ -X<REST Verb>][ -H 'Content-Type: application/json'] '<Node>:<Port>/<Index>[/Type][/ID]/_search?pretty&q=<search string>' |
-s 不输出查询的时间那些东西
-g 做转义用
q :前面加&,后跟查询语句
1.2、常用参数
1 | q :查询字符串 |
1.3、示例
** 基本操作 **
1 | #创建索引 |
** 查看节点情况 **
1 | #查看node状态 |
- Green - everything is good (cluster is fully functional),即最佳状态
- Yellow - all data is available but some replicas are not yet allocated (cluster is fully functional),即数据和集群可用,但是集群的备份有的是坏的
- Red - some data is not available for whatever reason (cluster is partially functional),即数据和集群都不可用
结果解释:
1 | heap.percent:堆内存,1/2最大内存-1和31之间取较小的值,高的话就是ES集群负担比较重,解决:关闭一些索引(阈值差不多可以定在80左右)后会释放一部分heap.percent,但不会释放disk.percent |
** 数据查询 **
1 | GET /mydemo_01*/_search?pretty&q=_exists_:name #查指定字段是否存在 |
** 批量操作 **
Elasticsearch还可以使用_bulk API批量执行上述任何操作
1 | #同时更新两个文档 |
2、结构化查询(DSL)
1 | GET /mydemo_01/user/_search |