ElasticSearch 命令大全详解(2026最新版)

ElasticSearch是大型架构核心,下面我详解ElasticSearch命令大全@mikechen

1. 查看集群健康状态

GET /_cluster/health

返回示例:

{
  "cluster_name":"es-cluster",
  "status":"green",
  "number_of_nodes":3
}

状态说明:

状态 含义
green 主分片、副本正常
yellow 主分片正常,副本缺失
red 主分片异常

2. 查看所有索引

GET /_cat/indices?v

输出:

health status index docs.count store.size
green  open   user10000      20mb

作用:

  • 查看索引数量
  • 查看文档数
  • 查看存储大小
  • 查看健康状态

3. 创建索引

PUT /user

高级创建:

PUT /user
{
"settings": {
"number_of_shards":3,
"number_of_replicas":1
  }
}

说明:

参数 含义
number_of_shards 主分片数
number_of_replicas 副本数

 

4. 删除索引

DELETE /user

注意:

删除后数据不可恢复。

生产环境建议:

action.destructive_requires_name:true

避免误删:

DELETE /*

 

5. 查看索引 Mapping

GET /user/_mapping

作用:

查看字段类型。

示例:

{
  "name": {
    "type":"text"
  },
  "age": {
    "type":"integer"
  }
}

 

6. 新增文档

POST /user/_doc/1
{
"name":"Tom",
"age":20
}

自动生成 ID:

POST /user/_doc
{
"name":"Jack"
}

 

7. 查询文档
根据 ID 查询:

GET /user/_doc/1

返回:

{
  "_source": {
    "name":"Tom",
    "age":20
  }
}

8. 更新文档

POST /user/_update/1
{
"doc": {
"age":25
  }
}

底层原理:

ES 不是真正“修改”。

而是:

  • 删除旧文档;
  • 写入新文档;

 

9. 删除文档

DELETE /user/_doc/1

注意:

删除后:

  • 不会立即物理删除
  • 会先标记 deleted

后续 Segment Merge 才真正删除。

10. Match 全文搜索

GET /user/_search
{
"query": {
"match": {
"name":"tom"
    }
  }
}

适用于:

  • 中文搜索;
  • 英文搜索;
  • 分词检索;

11. Term 精确查询

GET /user/_search
{
"query": {
"term": {
"age":20
    }
  }
}

特点:

  • 不分词;
  • 精确匹配;

适合:

  • ID;
  • 状态;
  • 标签;
  • 枚举值;

12. Bool 组合查询

GET /user/_search
{
"query": {
"bool": {
"must": [
        {"match": {"name":"Tom" }}
      ],
"filter": [
        {"term": {"age":20 }}
      ]
    }
  }
}

Bool 相当于 SQL:

WHERE name='Tom'
AND age=20

13. 分页查询

GET /user/_search
{
"from":0,
"size":10,
"query": {
"match_all": {}
  }
}

说明:

参数 含义
from 起始位置
size 返回条数

14. 排序查询

GET /user/_search
{
"sort": [
    {
"age": {
"order":"desc"
      }
    }
  ]
}

支持:

  • 升序 asc;
  • 降序 desc;

15. 聚合统计(Aggregation)
ES 最大优势之一:

支持海量数据实时分析。

GET /user/_search
{
"size":0,
"aggs": {
"avg_age": {
"avg": {
"field":"age"
      }
    }
  }
}

评论交流
    说说你的看法