重新索引文档
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 | 操作期间发生的任何故障。 |