3.4.2.12.Reindex API
创作人:杨松柏
什么是 Reindex
将文档从源索引复制到目标索引,称之为 Reindex。
在 Reindex 时可以进行数据的丰富、缩减以及字段的变更等。Reindex 可以简单的理解为
Scroll+Bulk_Insert。Source 和 dest 都可以是已存在的索引、索引别名或数据流(Data Stream)。
此外,使用 Reindex 需要注意以下几点:
l 源和目标不能相同,比如不能将数据流 Reindex 给它自身。
l 源索引的文档中 _source 字段必须开启。
l Reindex不会复制源的 setting 和源所匹配的模板,因此在调用 _reindex 前,你需要设置好目标索引 (action.auto_create_index 为 false 或者 -.* 时)。
l 目标索引的 mapping,主分片数,副本数等推荐提前配置。
Reindex的主要场景:
l 集群升级:将数据从旧集群远程 Reindex 到新集群
l 索引备份
l 数据重构
前置要求
如果 Elasticsearch 集群配置了安全策略和权限策略,则进行 Reindex 必须拥有以下权限:
l 读取源的数据流、索引、索引别名等索引级别权限。
l 对于目的数据流、索引、索引别名的写权限。
l 如果需要使用 Reindex API 自动创建数据流和索引,则必须拥有对目的数据流、索引、索引别名的 auto_configure、create_index 或者 manage 等索引级别权限。
l 如果源为远程的集群,则 source.remote.user 用户必须拥有集群监控权限,和读取源索引、源索引别名、源数据流的权限。
如果 Reindex 的源为远程集群,必须在当前集群的请求节点 elasticsearch.yml 文件配置远程白名单 reindex.remote.whitelist。
自动创建数据流,需要提前配置好数据流的匹配索引模板,详情可参看Set up a data stream:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/set-up-a-data-stream.html
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.12.Reindex API(2) https://developer.aliyun.com/article/1230248