索引的操作

#ES #索引 #Elasticsearch

总结
  • 索引相当于 MySQL 的数据库,CRUD 操作都是 REST 风格
  • auto_create_index 默认开启,写文档时索引不存在会自动创建
  • 索引可以关闭(停止读写但保留数据),不用了再删

1. 自动创建索引

ES 默认开启 auto_create_index,写文档时如果索引不存在会自动创建。生产环境一般建议关掉,避免误操作建出脏索引。

查看当前配置:

GET localhost:9200/_cluster/settings

修改配置:

PUT localhost:9200/_cluster/settings

{
  "persistent": {
    "action.auto_create_index": "false"
  }
}

2. 索引 CRUD

新增索引

PUT localhost:9200/nba

查询索引

GET localhost:9200/nba

删除索引

DELETE localhost:9200/nba

批量查看

GET localhost:9200/nba,cba

# 查看全部
GET localhost:9200/_all
GET localhost:9200/_cat/indices?v

判断索引是否存在

HEAD localhost:9200/nba

HTTP 200 代表存在,404 代表不存在。

3. 关闭 / 开启索引

索引关闭后停止读写,但数据还在,适合临时下线某个索引。

POST localhost:9200/nba/_close
POST localhost:9200/nba/_open

4. 面试相关

ES 的索引设计和 MySQL 的建库类似,如果你被问到索引设计的考量,可以重点准备 ES面试题 中的分片设计、写入原理相关问题。