_cat APIs
通过访问elasticsearch集群的/_cat
可以获取很多有用的信息。
使用curl -X GET "http://elasticsearch:9200/_cat"
可以单独列出所有可用的命令
1 | curl -X GET "http://elasticsearch-1:9200/_cat/" |
获取_cat API帮助
- 可以在
/_cat/COMMAND
后面加上参数help,获取对应的帮助信息
1 | curl -XGET "http://elasticsearch-1:9200/_cat/allocation?help" |
获取当前master信息
1 | curl -XGET "http://elasticsearch-1:9200/_cat/master?v" |
获取节点信息
1 | curl -XGET "http://elasticsearch-1:9200/_cat/nodes?format=json&pretty" |
获取索引信息
- 以json格式返回结果
1 | curl -XGET -H "Accept: application/json" "http://elasticsearch-1:9200/_cat/indices?format=json&pretty" |
- 以yaml格式返回结果
1 | curl -XGET "http://elasticsearch-1:9200/_cat/indices?format=yaml&pretty" |
_cluster APIs
官方文档见这里
Cluster Health
官方文档见这里
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/health?format=yaml&pretty" |
Cluster State
显示集群状态,官方文档见这里
查看版本信息
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/state/version?" |
查看master节点
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/state/master_node?format=json&pretty" |
查看节点
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/state/nodes?format=json&pretty" |
Cluster States
显示集群统计信息,官方文档见这里
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/stats?format=json&pretty" |
Cluster Update Settings
用于更新集群设置,可以永久persistent和临时transient设置某些参数
- 新启动的集群是没有配置的信息
1 | curl -XGET "http://elasticsearch-1:9200/_cluster/settings?format=json&pretty" |
- 临时修改集群recovery最大速度
1 | curl -XPUT \ |
Node Stats
1 | curl -XGET "http://elasticsearch-1:9200/_nodes/stats?format=json&pretty" |
Node Info
1 | # 不带过滤参数,默认显示所有节点信息 |
插件
官方文档见这里
二进制文件elasticsearch/bin/elasticsearch-plugin
查看默认可用的插件
1 | elasticsearch-plugin install --help |
CRUD
新增索引
1 | curl -X PUT "http://elasticsearch-1:9200/twitter" -H 'Content-Type: application/json' -d' |
删除索引
1 | curl -X DELETE "http://elasticsearch-1:9200/twitter" |
获取索引
1 | curl -X GET "http://elasticsearch-1:9200/twitter" |
更新索引
1 | curl -X PUT "http://elasticsearch-1:9200/twitter/_settings" \ |
新增文档
1 | curl -XPUT "http://elasticsearch-1:9200/students/class1/1?pretty" -d ' |
获取文档
1 | curl -XGET "http://elasticsearch-1:9200/students/class1/1?pretty" |
更新文档
- 直接PUT覆盖
- 使用
_update
API
1 | curl -XPOST "http://elasticsearch-1:9200/students/class1/2/_update?pretty" \ |
删除文档
1 | curl -XDELETE "http://elasticsearch-1:9200/students/class1/2?pretty" |
查询数据
Query DSL
查询操作阶段
- 分散阶段
- 合并阶段
查询方式
- 通过Restful API查询,查询参数见官方文档
1 | curl -XGET "http://elasticsearch-1:9200/students/_search?pretty" |
- 通过发送REST request body查询,查询参数见官方文档
1 | # 匹配所有 |
多索引、多类型查询
_search
:所有索引/INDEX_NAME/_search
:单索引/INDEX1,INDEX2/_search
:多索引/students/class1/_search
:单类型搜索/students/class1,class2/_search
:多类型搜索
Mapping和Analysis
- Elasticsearch对每个文档,会取得所有域的所有值,生成一个名为
“_all”
的域 - 执行查询的时候,如果未指定
query_string
,则在“_all”
域上执行查询操作
1 | # 在_all域搜索 |
数据类型
见官方文档
- array
- binary
- range
- boolean
- date
- geo-point
- geo-shape
- IP
- keyword
- nested
- numeric
- object
- text
- token count
- percolatro
- join