重新索引文档
1.0 版引入
重新索引文档 API 操作允许您将所有或部分数据从源索引复制到目标索引。
端点
POST /_reindex
查询参数
所有参数都是可选的。
参数 | 类型 | 描述 |
---|---|---|
refresh | 布尔型 | 如果为 true,OpenSearch 会刷新分片,以便重新索引操作可用于搜索结果。有效选项为 true 、false 和 wait_for ,后者指示 OpenSearch 在执行操作之前等待刷新。默认值为 false 。 |
timeout | 时间 | 等待集群响应的时间。默认值为 30s 。 |
wait_for_active_shards | 字符串 | 在 OpenSearch 处理重新索引请求之前必须可用的活动分片数量。默认值为 1(仅主分片)。设置为 all 或正整数。大于 1 的值需要副本。例如,如果您指定值为 3,则索引必须有两个副本分布在另外两个节点上,操作才能成功。 |
wait_for_completion | 布尔型 | 如果为 false ,OpenSearch 将异步运行重新索引操作,而不会等待其完成。请求会立即返回,任务在后台继续。您可以使用 任务 API 监控其进度。默认值为 true ,这意味着操作同步运行。 |
requests_per_second | 整数 | 指定请求的节流,以每秒子请求数表示。默认值为 -1,表示不节流。 |
require_alias | 布尔型 | 目标索引是否必须是索引别名。默认值为 false 。 |
scroll | 时间 | 搜索上下文保持打开的时间。默认值为 5m 。 |
slices | 整数 | OpenSearch 应将此任务划分为的子任务数量。默认值为 1,表示 OpenSearch 不应划分此任务。将此参数设置为 auto 表示 OpenSearch 应自动决定将任务拆分为多少个切片。 |
max_docs | 整数 | 按查询更新操作最多应处理的文档数量。默认值为所有文档。 |
请求正文
您的请求正文必须包含源索引和目标索引的名称。所有其他字段都是可选的。
字段 | 描述 |
---|---|
conflicts | 指示 OpenSearch 在重新索引操作遇到版本冲突时应如何处理。有效选项为 abort 和 proceed 。默认值为 abort 。 |
source | 要包含的有关源索引的信息。有效字段为 index 、max_docs 、query 、remote 、size 、slice 和 _source 。 |
index | 要复制数据的源索引名称。 |
max_docs | 要重新索引的最大文档数量。 |
query | 用于重新索引操作的搜索查询。 |
remote | 有关要从中复制数据的远程 OpenSearch 集群的信息。有效字段为 host 、username 、password 、socket_timeout 和 connect_timeout 。 |
host | 要复制数据的 OpenSearch 集群的主机 URL。 |
username | 用于远程集群身份验证的用户名。 |
password | 用于远程集群身份验证的密码。 |
socket_timeout | 套接字读取的等待时间。默认值为 30 秒。 |
connect_timeout | 远程连接超时的等待时间。默认值为 30 秒。 |
size | 要重新索引的文档数量。 |
slice | 是否手动或自动切分重新索引操作以使其并行执行。将此字段设置为 auto 允许 OpenSearch 控制要使用的切片数量,即每个分片一个切片,最多 20 个。如果存在多个源,则使用的切片数量基于索引或后台索引中分片数量最少的那个。 |
_source | 是否重新索引源字段。指定要重新索引的字段列表或设置为 true 以重新索引所有字段。默认值为 true 。 |
id | 与手动切片关联的 ID。 |
max | 最大切片数量。 |
dest | 关于目标索引的信息。有效值为 index 、version_type 、op_type 和 pipeline 。 |
index | 目标索引的名称。 |
version_type | 索引操作的版本类型。有效值为 internal 、external 、external_gt (如果指定版本号大于文档当前版本则检索文档)和 external_gte (如果指定版本号大于或等于文档当前版本则检索文档)。 |
op_type | 是否复制目标索引中缺失的文档。有效值为 create (忽略源索引中 ID 相同的文档)和 index (从源索引复制所有内容)。 |
pipeline | 重新索引期间要使用的摄入管道。 |
script(脚本) | OpenSearch 用于在重新索引操作期间对数据应用转换的脚本。 |
lang | 脚本语言。有效选项为 painless 、expression 、mustache 和 java 。 |
请求示例
POST /_reindex
{
"source":{
"index":"my-source-index"
},
"dest":{
"index":"my-destination-index"
}
}
示例响应
{
"took": 28829,
"timed_out": false,
"total": 111396,
"updated": 0,
"created": 111396,
"deleted": 0,
"batches": 112,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": []
}
响应正文字段
字段 | 描述 |
---|---|
took | 操作耗时(毫秒)。 |
timed_out | 操作是否超时。 |
total | 已处理的文档总数。 |
updated | 目标索引中已更新的文档数量。 |
创建时间 | 目标索引中已创建的文档数量。 |
deleted | 已删除的文档数量。 |
batches | 滚动响应的数量。 |
version_conflicts | 版本冲突的数量。 |
noops | OpenSearch 在操作期间忽略的文档数量。 |
retries | 批量和搜索重试请求的数量。 |
throttled_millis | 请求期间节流的毫秒数。 |
requests_per_second | 操作期间每秒执行的请求数量。 |
throttled_until_millis | OpenSearch 执行下一个节流请求之前的时间。 |
failures | 操作期间发生的任何故障。 |