Link Search Menu Expand Document Documentation Menu

重新索引文档

1.0 版引入

重新索引文档 API 操作允许您将所有或部分数据从源索引复制到目标索引。

端点

POST /_reindex

查询参数

所有参数都是可选的。

参数 类型 描述
refresh 布尔型 如果为 true,OpenSearch 会刷新分片,以便重新索引操作可用于搜索结果。有效选项为 truefalsewait_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 在重新索引操作遇到版本冲突时应如何处理。有效选项为 abortproceed。默认值为 abort
source 要包含的有关源索引的信息。有效字段为 indexmax_docsqueryremotesizeslice_source
index 要复制数据的源索引名称。
max_docs 要重新索引的最大文档数量。
query 用于重新索引操作的搜索查询。
remote 有关要从中复制数据的远程 OpenSearch 集群的信息。有效字段为 hostusernamepasswordsocket_timeoutconnect_timeout
host 要复制数据的 OpenSearch 集群的主机 URL。
username 用于远程集群身份验证的用户名。
password 用于远程集群身份验证的密码。
socket_timeout 套接字读取的等待时间。默认值为 30 秒。
connect_timeout 远程连接超时的等待时间。默认值为 30 秒。
size 要重新索引的文档数量。
slice 是否手动或自动切分重新索引操作以使其并行执行。将此字段设置为 auto 允许 OpenSearch 控制要使用的切片数量,即每个分片一个切片,最多 20 个。如果存在多个源,则使用的切片数量基于索引或后台索引中分片数量最少的那个。
_source 是否重新索引源字段。指定要重新索引的字段列表或设置为 true 以重新索引所有字段。默认值为 true
id 与手动切片关联的 ID。
max 最大切片数量。
dest 关于目标索引的信息。有效值为 indexversion_typeop_typepipeline
index 目标索引的名称。
version_type 索引操作的版本类型。有效值为 internalexternalexternal_gt(如果指定版本号大于文档当前版本则检索文档)和 external_gte(如果指定版本号大于或等于文档当前版本则检索文档)。
op_type 是否复制目标索引中缺失的文档。有效值为 create(忽略源索引中 ID 相同的文档)和 index(从源索引复制所有内容)。
pipeline 重新索引期间要使用的摄入管道。
script(脚本) OpenSearch 用于在重新索引操作期间对数据应用转换的脚本。
lang 脚本语言。有效选项为 painlessexpressionmustachejava

请求示例

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 操作期间发生的任何故障。
剩余 350 字符

有问题?

想做贡献?