拆分索引
1.0 版引入
拆分索引 API 操作将一个现有的只读索引拆分成一个新索引,将每个主分片拆分成新索引中的若干主分片。
示例
PUT /sample-index1/_split/split-index1
{
"settings": {
"index": {
"number_of_shards": 4,
"number_of_replicas": 2
}
},
"aliases": {
"sample-alias1": {}
}
}
端点
POST /<source-index>/_split/<target-index>
PUT /<source-index>/_split/<target-index>
索引命名限制
OpenSearch 索引有以下命名限制:
- 所有字母必须是小写。
- 索引名称不能以下划线 (
_
) 或连字符 (-
) 开头。 -
索引名称不能包含空格、逗号或以下字符:
:
、"
、*
、+
、/
、\
、|
、?
、#
、>
或<
路径参数
参数 | 类型 | 描述 |
---|---|---|
<源索引> | 字符串 | 要拆分的源索引。 |
<目标索引> | 字符串 | 要创建的索引。 |
查询参数
您的请求必须包含源索引和目标索引。所有拆分索引参数都是可选的。
参数 | 类型 | 描述 |
---|---|---|
<源索引> | 字符串 | 要拆分的源索引。 |
<目标索引> | 字符串 | 要创建的索引。 |
wait_for_active_shards | 字符串 | 在 OpenSearch 处理请求之前必须可用的活动分片数量。默认值为 1(仅主分片)。设置为 all 或一个正整数。值大于 1 需要副本。例如,如果您指定的值为 3,则索引必须在另外两个节点上分布两个副本才能使操作成功。 |
cluster_manager_timeout | 时间 | 等待连接到集群管理器节点的时间。默认值为 30s 。 |
timeout | 时间 | 等待请求返回的时间。默认值为 30s 。 |
wait_for_completion | 布尔型 | 当设置为 false 时,请求会立即返回,而不是在操作完成后返回。要监控操作状态,请使用 任务 API,并传入请求返回的任务 ID。默认值为 true 。 |
task_execution_timeout | 时间 | 明确的任务执行超时时间。仅当 wait_for_completion 设置为 false 时有用。默认值为 1h 。 |
请求正文
拆分索引 API 操作会创建一个新的目标索引,因此您可以指定任何要应用于目标索引的索引设置和别名。
示例响应
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "split-index1"
}
索引编解码器注意事项
有关索引编解码器的注意事项,请参阅索引编解码器。