ElasticSearch REST API


ElasticSearch 暴露的 REST API,提供给 UI 组件使用,也可以直接被调用来配置及访问 ElasticSearch 特性。

常用API

  • 索引 index:test_index
  • 类型 type:test_type
  • 字段名 filed:test_filed

1. 集群支持的选项

curl -XGET "http://172.0.0.52:9200/_cat"

2. 查看节点信息

curl -XGET "http://172.0.0.52:9200/_cat/nodes?v"

3. 查看 master 节点信息

curl -XGET "http://172.0.0.52:9200/_cat/master?v"

4.查看所有节点上的热点线程

curl -XGET "http://172.0.0.52:9200/_nodes/hot_threads"

5.查看有问题的分片或索引

curl -XGET "http://172.0.0.52:9200/_cluster/allocation/explain?pretty"

6.查看线程池设置

curl -XGET "http://172.0.0.52:9200/_nodes/thread_pool/"

7.统计全部信息

curl -XGET "http://172.0.0.52:9200/_cluster/stats?human&pretty"

8.查看集群状态

curl -XGET "http://172.0.0.52:9200/_cluster/health?pretty"

9.查看 ES 信息

curl -XGET "http://172.0.0.52:9200/"

10.获取所有索引的信息

curl -XGET "http://172.0.0.52:9200/_cat/indices?v&pretty"
curl -XGET "http://172.0.0.52:9200/_cat/nodes?v"
curl -XGET "http://172.0.0.52:9200/_cat/segments?v&h=shard,segment,size,size.memory"

11.获取所有文档数量

curl -XGET "http://172.0.0.52:9200/_count?pretty" -H 'Content-Type: application/json' -d'
{
    "query": {
        "match_all": {}
    }
}'

12. 查看集群的健康状态

  • green:所有功能都是完好的;
  • yellow:所有数据是可用的,但是一些副本还没有被分配;
  • red代表一些数据由于某些原因已经不可用。
  • 注意,尽管一个集群是red状态,它仍然可以提供部分服务(比如,它会继续从可用的切片数据里搜索),但是在失去部分数据后,需要尽快去修复。
curl -XGET "http://172.0.0.52:9200/_cat/health?v"

13. 创建索引

  • test_index 索引名
  • pretty 参数表示输出格式良好的JSON响应(如果存在)
curl -XPUT "http://172.0.0.52:9200/test_index?pretty"

14. 查看索引列表

curl -XGET "http://172.0.0.52:9200/_cat/indices?v"
curl -XGET "http://172.0.0.52:9200/test_index"

15. 删除索引

  • 根据索引名称删除
curl -XDELETE "http://172.0.0.52:9200/test_index?pretty"
  • 可以一次删除多个索引(以逗号间隔)删除所有索引_all或通配符 *

16. 创建文档

  • 向 es 中插入文档的时候,必须要指定一个类型(type)

16.1.使用 PUT 来创建文档,需要指定字段

  • 索引 index:test_index
  • 类型 type:test_type
  • 字段名 filed:test_filed
curl -XPUT "http://172.0.0.52:9200/test_index/test_type/test_filed?pretty" -H 'Content-Type: application/json' -d'
{"name": "ghl", "age": 24, "sex": "male"}'

16.2. 使用 POST 来创建文档,可以不指定 id(不指定时随机生成 id)

curl -XPOST "http://172.0.0.52:9200/test_index/test_type?pretty" -H 'Content-Type: application/json' -d'
{"name": "Jack"}'

17. 查看文档

curl -XGET "http://172.0.0.52:9200/test_index/test_type/test_filed?pretty"

18. 替换文档

使用 PUT 并指定 id 时,es 会使用新的文档替换原文档

curl -XPUT "http://172.0.0.52:9200/test_index/test_type/test_filed?pretty" -H 'Content-Type: application/json' -d'
{"name": "Jack"}'

19. 更新文档

curl -XPOST "http://172.0.0.52:9200/test_index/test_type/test_filed/_update?pretty" -H 'Content-Type: application/json' -d'
{"doc":{"name": "Lucy"}}'

20. 删除文档

curl -XDELETE "http://172.0.0.52:9200/test_index/test_type/test_filed?pretty"

21. 索引的增删改查有一个类似的格式下:

curl -XGET "http://172.0.0.52:9200/<Index>/<Type>/<ID>"
  • REST Verb:REST 风格的语法谓词;
  • Node:节点 ip;
  • port:节点端口号,默认 9200;
  • Index:索引名;
  • Type:索引类型;
  • ID:操作对象的 ID 号;

22. 判断索引是否存在

curl -XHEAD "http://172.0.0.52:9200/test_index"

23. 查看索引模板

curl -XGET "http://172.0.0.52:9200/_template/template_1"
curl -XGET "http://172.0.0.52:9200/_template/temp*"
curl -XGET "http://172.0.0.52:9200/_template/template_1,template_2"
curl -XGET "http://172.0.0.52:9200/_template"

24. 删除模板

curl -XDELETE "http://172.0.0.52:9200/_template/template_1"

25. 打开/关闭索引

curl -XPOST "http://172.0.0.52:9200/test_index/_close"
curl -XPOST "http://172.0.0.52:9200/test_index/_open"
curl -XGET "http://172.0.0.52:9200/_cat/indices?v"

26.查看索引状态信息

curl -XGET "http://172.0.0.52:9200/_stats"
curl -XGET "http://172.0.0.52:9200/logstash-nginx-access-2019.08.07,test_index/_stats"

27.查看索引段信息

curl -XGET "http://172.0.0.52:9200/test_index/_segments"
curl -XGET "http://172.0.0.52:9200/logstash-nginx-access-2019.08.07,test_index/_segments"
curl -XGET "http://172.0.0.52:9200/_segments"
posted @   Thousand_Mesh  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示