【发布时间】:2020-09-27 16:20:07
【问题描述】:
我正在使用 Elasticsearch 的重新索引 API 将日志从旧集群迁移到新版本 7.9.2 集群。这是我正在使用的命令。
curl -X POST "new_host:9200/_reindex?pretty&refresh&wait_for_completion=true" -H 'Content-Type: application/json' -d'
{
"source": {
"remote": {
"host": "old_host:9200"
},
"index": "*",
"size": 10000,
"query": {
"match_all": {}
}
},
"conflicts": "proceed",
"dest": {
"index": "logstash"
}
}'
这仅获取最后 10000 个文档或 1 个批次,然后请求完成。但是,我需要重新索引超过一百万个文档。有没有办法让所有匹配的文档都运行请求?是否可以设置请求中的批次数或使请求发出批次直到所有文档都被索引?
我能想到的一个选项是通过修改日期时间的查询来递归发送请求。有更好的方法吗?我可以在一个请求中获取所有匹配的文档(超过 100 万个)吗?
【问题讨论】:
标签: elasticsearch elastic-stack reindex