打开一个或多个已关闭的索引,使其恢复正常功能。
API #
POST /{index}/_open
POST /_all/_open
API 的作用 #
该 API 用于打开已关闭的索引。关闭的索引不会响应读写请求,也不会占用集群资源。使用 _open API 可以:
- 重新打开关闭的索引
- 恢复索引的读写操作
- 重新分配索引的分片
- 使索引可以正常被搜索
关闭 vs 打开索引 #
| 状态 | 描述 |
|---|---|
| 打开 (Open) | 索引正常工作,可以读写和搜索 |
| 关闭 (Close) | 索引不响应请求,不占用内存,但保留磁盘数据 |
API 的参数 #
路由参数 #
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
{index} | 字符串 | 必需 | 要打开的索引名称。支持:单个索引、逗号分隔的多个索引、通配符表达式、_all 或 *(所有索引) |
Query String 参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
timeout | 时间值 | 否 | 无 | 显式操作超时时间 |
master_timeout | 时间值 | 否 | 无 | 连接到主节点的超时时间 |
ignore_unavailable | 布尔值 | 否 | false | 是否忽略不可用(缺失或关闭)的索引 |
allow_no_indices | 布尔值 | 否 | false | 当通配符没有匹配到索引时是否忽略 |
expand_wildcards | 枚举值 | 否 | open | 如何展开通配符。可选值:open、closed、all |
wait_for_active_shards | 字符串 | 否 | 1 | 在操作返回之前等待的活跃分片数 |
示例 #
打开单个索引 #
POST /my_index/_open
响应示例:
{
"acknowledged": true,
"shards_acknowledged": true
}
打开多个索引 #
POST /index1,index2/_open
使用通配符打开索引 #
POST /logs-*/_open
打开所有索引 #
POST /_all/_open
或
POST /*/_open
等待所有分片活跃 #
POST /my_index/_open?wait_for_active_shards=all
等待指定数量的分片活跃 #
POST /my_index/_open?wait_for_active_shards=2
设置超时时间 #
POST /my_index/_open?timeout=5m
只打开关闭的索引 #
POST /*/_open?expand_wildcards=closed
忽略不存在的索引 #
POST /index1,nonexistent/_open?ignore_unavailable=true
组合参数使用 #
POST /logs-*/_open?expand_wildcards=closed&wait_for_active_shards=all&timeout=2m
expand_wildcards 参数说明 #
| 值 | 描述 |
|---|---|
open | 只展开到打开的索引(默认) |
closed | 只展开到关闭的索引 |
all | 展开到所有索引(打开和关闭) |
wait_for_active_shards 参数说明 #
| 值 | 描述 |
|---|---|
1 或 default | 只等待主分片变为活跃(默认) |
all | 等待所有分片(主分片和副本)都活跃 |
数字 | 等待指定数量的分片变为活跃 |
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
acknowledged | 布尔值 | 操作是否被主节点确认 |
shards_acknowledged | 布尔值 | 是否所有相关分片在操作返回前变为活跃状态 |
使用场景 #
场景 1:重新启用归档索引 #
# 打开旧的日志索引以便查询
POST /logs-2025-*/_open
场景 2:批量操作后恢复索引 #
# 关闭索引进行配置更新
POST /my_index/_close
# 更新设置
PUT /my_index/_settings
{
"index": {
"refresh_interval": "5s"
}
}
# 重新打开索引
POST /my_index/_open
场景 3:分阶段恢复索引 #
# 只打开部分索引以避免资源压力
POST /archive-2025-01/_open?wait_for_active_shards=all
注意事项 #
- 资源消耗:打开索引会重新分配分片并占用内存
- 集群健康:打开大量索引可能影响集群健康状态
- 分片恢复:打开索引后需要等待分片恢复完成才能正常使用
- 副本分配:副本分片可能需要时间来完成分配
- 性能影响:建议在低峰期打开大量索引





