关闭一个或多个索引,使其不再响应读写请求,但保留磁盘数据。
API #
POST /{index}/_close
POST /_close
API 的作用 #
该 API 用于关闭索引。关闭的索引:
- 不再响应读写请求
- 不占用内存资源
- 保留磁盘数据
- 可以通过
_openAPI 重新打开
使用场景 #
- 保留历史数据但不需要频繁访问
- 释放集群内存资源
- 暂时禁用某些索引
- 批量操作前的准备工作
注意:关闭的索引仍占用磁盘空间,并且可能占用集群状态空间(每个索引约占用几KB)。
API 的参数 #
路由参数 #
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
{index} | 字符串 | 必需 | 要关闭的索引名称。支持:单个索引、逗号分隔的多个索引、通配符表达式 |
Query String 参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
master_timeout | 时间值 | 否 | 30s | 等待主节点操作的超时时间 |
timeout | 时间值 | 否 | 无 | 等待操作完成的超时时间 |
wait_for_active_shards | 字符串 | 否 | 0 | 等待指定数量的分片变为活跃状态 |
ignore_unavailable | 布尔值 | 否 | false | 是否忽略不存在的索引 |
allow_no_indices | 布尔值 | 否 | false | 当没有匹配的索引时是否允许操作成功 |
示例 #
关闭单个索引 #
POST /my_index/_close
响应示例:
{
"acknowledged": true,
"shards_acknowledged": true
}
关闭多个索引 #
POST /index1,index2/_close
使用通配符关闭索引 #
POST /logs-2025-*/_close
关闭所有索引 #
POST /*/_close
或
POST /_all/_close
设置超时时间 #
POST /my_index/_close?timeout=1m&master_timeout=30s
忽略不存在的索引 #
POST /index1,nonexistent/_close?ignore_unavailable=true
等待分片活跃 #
POST /my_index/_close?wait_for_active_shards=all
wait_for_active_shards 参数说明 #
| 值 | 描述 |
|---|---|
0 | 不等待分片(默认) |
all | 等待所有分片活跃 |
数字 | 等待指定数量的分片活跃 |
default | 使用索引的默认副本数 |
关闭索引的限制 #
可以通过集群设置控制是否允许关闭索引:
PUT /_cluster/settings
{
"persistent": {
"cluster.indices.close.enable": false
}
}
如果关闭功能被禁用,会返回错误:
closing indices is disabled - set [cluster.indices.close.enable: true] to enable it.
NOTE: closed indices still consume a significant amount of diskspace
使用场景 #
场景 1:归档旧数据 #
# 关闭去年的日志索引以释放内存
POST /logs-2024-*/_close
场景 2:批量操作前准备 #
# 关闭索引
POST /my_index/_close
# 更新设置
PUT /my_index/_settings
{
"index": {
"number_of_replicas": 2
}
}
# 重新打开
POST /my_index/_open
场景 3:暂时禁用索引 #
# 关闭临时不需要的索引
POST /temp_index/_close
# 需要时重新打开
POST /temp_index/_open
关闭索引的影响 #
| 资源 | 影响 |
|---|---|
| 内存 | 释放相关内存 |
| 磁盘 | 数据保留,不释放空间 |
| 集群状态 | 每个关闭的索引占用约几KB |
| 查询 | 关闭的索引不会被搜索 |
| 写入 | 关闭的索引不能写入数据 |
| 分片 | 分片被卸载,不占用节点资源 |
注意事项 #
- 磁盘空间:关闭的索引仍占用磁盘空间
- 集群状态:大量关闭的索引会增加集群状态大小
- 重新打开:重新打开索引需要时间来恢复分片
- 生产数据:建议对重要数据先创建快照再关闭
- 快照:可以对关闭的索引创建快照
- 删除:删除索引比关闭索引更能释放资源
关闭 vs 删除 #
| 操作 | 磁盘数据 | 内存占用 | 可恢复性 |
|---|---|---|---|
| 关闭 | 保留 | 释放 | 可重新打开 |
| 删除 | 删除 | 释放 | 需从备份恢复 |
如果不再需要索引数据,建议使用删除操作而非关闭操作。





