elasticsearch仅重新索引丢失的文档

oxalkeyp  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(439)

我正在尝试将一个包含200m文档的索引从集群a重新索引到集群b。我在远程源代码中使用了reindexapi,一切正常。在我重新索引的过程中,一些文档被添加到集群a中,所以我想将它们也添加到集群b中。
我再次启动了reindex请求,但似乎reindex过程花费了很多时间,就像它再次为所有内容重新编制索引一样。
我的问题是,集群是否从头开始重新索引所有文档,即使它们没有改变?
我的elasticsearch版本是5.6

vhmi4jdf

vhmi4jdf1#

elasticsearch不知道文档是否有更改。因此,它尝试将每个文档完全放在两个索引中。如果你有这样的领域 insert_time 在数据中,可以使用reindex with query将a的索引部分限制为b的reindex。这将允许您使用旧的重新索引并更快地完成它。按查询重新索引如下:

POST _reindex
{
  "source": {
    "index": "A",
    "query": {
       "range": {
          "insert_time": {
              "gt": "time you want"
      }
    }
  },
  "dest": {
    "index": "B"
  }
}

相关问题