基础信息,自行查看网上文档,我这直接罗列的是,实际操作的步骤。
当前集群内 reindex
POST _reindex?wait_for_completion=false
{
"conflicts": "proceed",
"source": {
"index": "source_index", #源索引
"size": 4000 # 非必需(加速reindex作用),可根据实际情况,自行调整size大小 ,默认1000
},
"dest": {
"index": "target_index" #新的索引名称
}
}
跨集群 reindex 导入数据
POST _reindex?wait_for_completion=false
{
"conflicts": "proceed",
"source": {
"index": "source_index",# 源索引名称
"size": 4000,
"remote": {
"host": "http://es-cn-miumiumiu.elasticsearch.aliyuncs.com:9200", // es的集群地址
"username": "elasticsearch用户名",
"password": "elasticsearch密码"
}
},
"dest": {
"index": "target_index" #目标索引,新的索引名称
}
}
注意:
1、在备份数据的场景下,我以为 target_index 不用创建,这个要手动创建哈。
2、如果是跨越集群: 需要在目标集群(新索引所在集群)的 elasticsearch.yml配置白名单reindex.remote.whitelist
reindex.remote.whitelist: ["192.168.172.267:9200"] #ip方式,随便写的ip。
reindex.remote.whitelist: ["es-cn-miumiumiu.elasticsearch.aliyuncs.com:9200"] # 实例名称方式,注意这里没http.
以上我都是手动提前把目前索引创建好了的, 因为我有特殊需求->自己设置mapping了。
查看任务进度
GET _tasks?detailed=true&actions=*reindex
参考资料:
https://blog.csdn.net/wuxintdrh/article/details/119321296
http://t.zoukankan.com/lgj8-p-14286169.html
https://www.csdn.net/tags/MtTaIgxsMzg0NjczLWJsb2cO0O0O.html
https://blog.csdn.net/w1014074794/article/details/120483334
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-reindex.html