ElasticSearch核心命令详解(2026最新版)

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

1、查看集群健康状态(_cluster/health)
这是排查 ES 的第一条命令。

GET /_cluster/health

返回结果:

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

状态说明:

  • green:全部正常
  • yellow:副本未分配
  • red:主分片异常

使用场景

  • 集群巡检
  • 故障排查
  • 查看是否存在分片异常

2、查看所有索引(_cat/indices)

GET /_cat/indices?v

输出:

health status index      docs.count store.size
green  open   user        100000     500mb
green  open   order       500000     2gb

参数说明:

  • docs.count:文档数量
  • store.size:索引大小
  • health:健康状态

使用场景

查看:

  • 所有索引
  • 数据量
  • 索引大小

3、创建索引

PUT /user

指定 Mapping:

PUT /user
{
  "mappings": {
    "properties": {
      "name":{
        "type":"text"
      },
      "age":{
        "type":"integer"
      }
    }
  }
}

适用于:

  • 新业务上线
  • 初始化索引

4、删除索引

DELETE /user

删除多个:

DELETE /user,order

删除全部(谨慎):

DELETE /*

注意

生产环境不要随便执行。

5、查看 Mapping(字段结构)

GET /user/_mapping

返回:

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

作用:

查看字段类型:

  • keyword
  • text
  • integer
  • date
  • boolean

6、插入文档
指定 ID:

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

自动生成 ID:

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

7、查询文档
根据 ID:

GET /user/_doc/1

查询所有:

GET /user/_search

返回:

{
  "hits":{
      "total":100
  }
}

8、更新文档
局部更新:

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

覆盖更新:

PUT /user/_doc/1
{
  "name":"Tom",
  "age":30
}

9、删除文档

DELETE /user/_doc/1

删除符合条件的数据:

POST /user/_delete_by_query
{
  "query":{
    "match":{
      "name":"Tom"
    }
  }
}

10、全文搜索(match)
最常见查询。

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

特点:

  • 会分词
  • 全文检索
  • 搜索最常用

适合:

  • 商品搜索
  • 博客搜索
  • 新闻搜索

11、精确查询(term)

GET /user/_search
{
  "query":{
    "term":{
      "status":1
    }
  }
}

特点:

  • 不分词
  • 完全匹配

适用于:

  • ID
  • 状态
  • 类型
  • keyword 字段

12、分页排序查询
分页:

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

排序:

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

分页 + 排序:

GET /user/_search
{
  "from":20,
  "size":10,
  "sort":[
    {
      "age":"desc"
    }
  ]
}

说明:

  • from:起始位置
  • size:返回数量

13、批量操作(Bulk)
Bulk 是 ES 性能优化最重要的命令之一。

批量插入:

POST /_bulk
{"index":{"_index":"user","_id":"1"}}
{"name":"Tom","age":20}
{"index":{"_index":"user","_id":"2"}}
{"name":"Jack","age":25}

批量删除:

POST /_bulk
{"delete":{"_index":"user","_id":"1"}}
{"delete":{"_index":"user","_id":"2"}}

批量更新:

POST /_bulk
{"update":{"_index":"user","_id":"1"}}
{"doc":{"age":30}}

 

评论交流
    说说你的看法