关闭索引 API
编辑关闭索引 API
编辑关闭一个索引。
resp = client.indices.close( index="my-index-000001", ) print(resp)
response = client.indices.close( index: 'my-index-000001' ) puts response
const response = await client.indices.close({ index: "my-index-000001", }); console.log(response);
POST /my-index-000001/_close
请求
编辑POST /<index>/_close
描述
编辑你可以使用关闭索引 API 来关闭打开的索引。
关闭的索引会阻止读/写操作,并且不允许所有打开的索引允许的操作。无法在关闭的索引中索引文档或搜索文档。这使得关闭的索引不必维护用于索引或搜索文档的内部数据结构,从而减少集群的开销。
当打开或关闭索引时,主节点负责重启索引分片以反映索引的新状态。然后,分片将经历正常的恢复过程。打开/关闭的索引的数据由集群自动复制,以确保始终安全地保留足够的分片副本。
你可以打开和关闭多个索引。如果请求显式引用了丢失的索引,则会抛出错误。可以使用 ignore_unavailable=true
参数禁用此行为。
默认情况下,你必须显式地命名你要打开或关闭的索引。要使用 _all
、*
或其他通配符表达式打开或关闭索引,请将 action.destructive_requires_name
设置更改为 false
。也可以通过集群更新设置 API 更改此设置。
关闭的索引会消耗大量的磁盘空间,这可能会在托管环境中引起问题。可以通过集群设置 API 将 cluster.indices.close.enable
设置为 false
来禁用关闭索引。默认值为 true
。
路径参数
编辑-
<index>
-
(可选,字符串)用于限制请求的索引名称的逗号分隔列表或通配符表达式。
要关闭所有索引,请使用
_all
或*
。默认情况下,你必须显式地命名要关闭的索引。要使用_all
、*
或其他通配符表达式指定要关闭的索引,请将action.destructive_requires_name
设置更改为false
。你可以在elasticsearch.yml
文件中或使用 集群更新设置 API 更新此设置。
查询参数
编辑-
allow_no_indices
-
(可选,布尔值)如果为
false
,则当任何通配符表达式、索引别名 或_all
值仅以丢失或关闭的索引为目标时,请求将返回错误。即使请求以其他打开的索引为目标,此行为也适用。例如,如果一个索引以foo
开头,但没有索引以bar
开头,则以foo*,bar*
为目标的请求将返回错误。默认为
true
。 -
expand_wildcards
-
(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以以数据流为目标,则此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔值,例如
open,hidden
。有效值为-
all
- 匹配任何数据流或索引,包括隐藏的。
-
open
- 匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
-
closed
- 匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流无法关闭。
-
hidden
- 匹配隐藏的数据流和隐藏的索引。必须与
open
、closed
或两者结合使用。 -
none
- 不接受通配符模式。
默认为
open
。 -
-
ignore_unavailable
- (可选,布尔值)如果为
false
,则当请求以丢失或关闭的索引为目标时,请求将返回错误。默认为false
。 -
wait_for_active_shards
-
(可选,字符串)在继续操作之前,必须处于活动状态的每个分片的副本数。设置为
all
或任何非负整数,最大值为索引中每个分片副本的总数(number_of_replicas+1
)。默认为1
,表示仅等待每个主分片处于活动状态。请参阅 活动分片。
-
master_timeout
- (可选,时间单位)等待主节点的时间。如果主节点在超时过期之前不可用,则请求失败并返回错误。默认为
30s
。也可以设置为-1
,表示请求永远不应超时。 -
timeout
- (可选,时间单位)更新集群元数据后,等待集群中所有相关节点响应的时间。如果在超时过期之前没有收到响应,则集群元数据更新仍然适用,但响应将指示未完全确认。默认为
30s
。也可以设置为-1
,表示请求永远不应超时。
示例
编辑以下示例演示如何关闭索引
resp = client.indices.close( index="my-index-000001", ) print(resp)
response = client.indices.close( index: 'my-index-000001' ) puts response
const response = await client.indices.close({ index: "my-index-000001", }); console.log(response);
POST /my-index-000001/_close
API 返回以下响应
{ "acknowledged": true, "shards_acknowledged": true, "indices": { "my-index-000001": { "closed": true } } }