日常最主要是查询、更新和删除操作,又可以细分为索引、文档、集群操作。

集群

1. _cat:查询elasticsearch集群状态的接口

可以查看返回的结果,这就是我们可以利用的接口。如/_cat/aliases,我们可以查询索引的别名,在排查问题的时候会用到,文本后续会补充说明。

  1. [sudoroot@node2 ~]$ curl -u 'esUser:esPasswd' -X GET esIP:esPort/_cat # 需要四个参数
  2. =^.^=
  3. /_cat/allocation
  4. /_cat/shards
  5. /_cat/shards/{index}
  6. /_cat/master
  7. /_cat/nodes
  8. /_cat/tasks
  9. /_cat/indices
  10. /_cat/indices/{index}
  11. /_cat/segments
  12. /_cat/segments/{index}
  13. /_cat/count
  14. /_cat/count/{index}
  15. /_cat/recovery
  16. /_cat/recovery/{index}
  17. /_cat/health
  18. /_cat/pending_tasks
  19. /_cat/aliases
  20. /_cat/aliases/{alias}
  21. /_cat/thread_pool
  22. /_cat/thread_pool/{thread_pools}
  23. /_cat/plugins
  24. /_cat/fielddata
  25. /_cat/fielddata/{fields}
  26. /_cat/nodeattrs
  27. /_cat/repositories
  28. /_cat/snapshots/{repository}
  29. /_cat/templates

2. 查询集群健康状态

curl -XGET localhost:9200/_cluster/health?pretty=true
pretty=true表示格式化输出
level=indices 表示显示索引状态
level=shards 表示显示分片信息
绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用

3. 显示集群系统信息,包括CPU JVM等等

curl -XGET localhost:9200/_cluster/stats?pretty=true

4. 集群的详细信息。包括节点、分片等。

curl -XGET localhost:9200/_cluster/state?pretty=true

5. 获取集群堆积的任务

curl -XGET localhost:9200/_cluster/pending_tasks?pretty=true

6. 修改集群配置

举例:
curl -XPUT localhost:9200/_cluster/settings -d ‘{
“persistent” : {
“discovery.zen.minimum_master_nodes” : 2
}
}’
transient 表示临时的,persistent表示永久的

7. 对shard的手动控制

curl -XPOST ‘localhost:9200/_cluster/reroute’ -d ‘xxxxxx’
参考http://zhaoyanblog.com/archives/687.html

8. 关闭节点

关闭指定192.168.1.1节点
curl -XPOST ‘http://192.168.1.1:9200/_cluster/nodes/_local/_shutdown’
curl -XPOST ‘http://localhost:9200/_cluster/nodes/192.168.1.1/_shutdown’
关闭主节点
curl -XPOST ‘http://localhost:9200/_cluster/nodes/_master/_shutdown’
关闭整个集群
$ curl -XPOST ‘http://localhost:9200/_shutdown?delay=10s’
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_shutdown’
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_all/_shutdown’
delay=10s表示延迟10秒关闭

nodes系列

查询节点的状态
curl -XGET ‘http://localhost:9200/_nodes/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/process’
curl -XGET ‘http://localhost:9200/_nodes/_all/process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/info/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/_all
curl -XGET ‘http://localhost:9200/_nodes/hot_threads

索引

  1. 查询所有索引

curl -X GET ‘http://localhost:9200/_cat/indices?v

  1. 列出索引中的所有文档

curl -X GET ‘http://localhost:9200/sample/_search

  1. 新建索引

curl -XPUT’localhost:9200/sample?pretty’

  1. 删除名为samples的索引。

curl -X DELETE ‘http://localhost:9200/samples

  1. 备份索引

curl -XPOST —header ‘Content-Type: application/json’ http://localhost:9200/_reindex -d ‘{ “source”: { “index”: “samples”}, “dest”: {“index”: “samples_backup” } }’

别名

  1. 操作别名的两个方法

_alias:单个操作
_aliases:多个操作

  1. 查询别名

通过别名查询所指向的索引:
curl -XGET ‘localhost:9200/_alias/dm’
curl -XGET ‘localhost:9200/_alias/dm
查询指向该索引下的所有别名:
curl -XGET ‘localhost:9200/dm_v2/_alias/

  1. 创建别名

curl -XPUT ‘localhost:9200/dm_v1/_alias/dm’
curl -XPOST ‘http://localhost:9200/_aliases‘ -d ‘ {“actions” : [{ “add” : { “index” : “dm_v1”, “alias” : “dm_alias” } }]}’

  1. 删除别名

curl -XDELETE ‘localhost:9200/dm_v1/_alias/dm_alias’

  1. 删除别名的同时添加别名到新的索引,该操作时原子性的,不用担心存在别名没有指向任何索引的瞬间(常用)

    1. curl -XPOST 'http://localhost:9200/_aliases' -d '
    2. {
    3. "actions" : [
    4. { "remove" : { "index" : "dm_v1", "alias" : "dm" } },
    5. { "add" : { "index" : "dm_v2", "alias" : "dm" } }
    6. ]
    7. }'

    文档

  2. 新增数据

curl —header ‘Content-Type: application/json’ -XPUT http://localhost:9200/samples/_doc/2 -d ‘{“school”:”Clemson”}’

  1. 更新数据

curl —header ‘Content-Type: application/json’ -XPOST http://localhost:9200/samples/_doc/2/_update -d ‘{“doc” : { “students”: 50000}}’

  1. 查看

curl -XGET ‘localhost:9200/customer/samples/_doc/2?pretty’
[

](https://blog.csdn.net/allway2/article/details/108866331)