我正在尝试将200M文档的索引从群集A重新索引到群集B。我将Reindex API与远程源一起使用,并且一切正常。在重新索引期间,一些文档已添加到群集A中,因此我也希望将它们也添加到群集B中。
我再次启动了重新索引请求,但似乎重新索引过程会花费很多,就像重新索引所有内容一样。
我的问题是,集群是否从头开始为所有文档重新编制索引,即使它们没有更改?
我的elasticsearch版本是5.6
答案 0 :(得分:1)
elasticsearch不知道文档中是否有更改。因此,它试图使每个文档都完全包含在两个索引中。如果您的数据中有一个insert_time
之类的字段,则可以将reindex与查询配合使用,以限制A的索引部分成为B的重新索引。这将使您使用较旧的reindex并更快地完成它。通过查询重新索引将是这样的:
POST _reindex
{
"source": {
"index": "A",
"query": {
"range": {
"insert_time": {
"gt": "time you want"
}
}
},
"dest": {
"index": "B"
}
}