阻塞
1.0 版引入
使用区块 API 限制对指定索引的某些操作。不同类型的区块允许您限制索引的写入、读取或元数据操作。例如,通过 API 添加一个 write
区块可确保所有索引分片都已正确记录该区块,然后才返回成功响应。任何正在进行的对索引的写入操作都必须在 write
区块生效之前完成。
端点
PUT /<index>/_block/<block>
路径参数
参数 | 数据类型 | 描述 |
---|---|---|
索引 | 字符串 | 一个以逗号分隔的索引名称列表。支持通配符表达式 (* )。要定位集群中的所有数据流和索引,请使用 _all 或 * 。可选。 |
<block> | 字符串 | 指定要应用于索引的区块类型。有效值为 - metadata :阻止元数据更改,例如关闭索引。- read :阻止读取操作。- read_only :阻止写入操作和元数据更改。- write :阻止写入操作,但允许元数据更改。- search_only :阻止索引和写入操作,同时允许通过搜索副本进行只读访问。OpenSearch 通过 Scale API 自动管理此区块,作为读写分离机制的一部分。因此,请勿手动设置此参数。 |
查询参数
下表列出了可用的查询参数。所有查询参数都是可选的。
参数 | 数据类型 | 描述 |
---|---|---|
忽略不可用 | 布尔型 | 当为 false 时,如果请求的目标是缺失或已关闭的索引,则返回错误。默认值为 false 。 |
允许无索引 | 布尔型 | 当为 false 时,如果通配符表达式、索引别名或 _all 仅针对已关闭或缺失的索引,即使请求是针对开放索引发出的,刷新索引 API 也会返回错误。默认值为 true 。 |
展开通配符 | 字符串 | 通配符模式可以匹配的索引类型。如果请求针对数据流,此参数决定通配符表达式是否匹配任何隐藏的数据流。支持逗号分隔值,例如 open,hidden 。有效值为 all 、open 、closed 、hidden 和 none 。 |
集群管理器超时 | 时间 | 等待连接到集群管理器节点的时间量。默认值为 30s 。 |
超时 | 时间 | 等待请求返回的时间量。默认值为 30s 。 |
请求示例
以下示例请求禁用对测试索引的任何 write
操作
PUT /test-index/_block/write
示例响应
{
"acknowledged" : true,
"shards_acknowledged" : true,
"indices" : [ {
"name" : "test-index",
"blocked" : true
} ]
}