我不希望弹性搜索在重新编制索引时使用scan(scoll api),因此我的策略是在线重新编制索引,最后检查新索引中的文档数量不低于旧指数。注意,我在重新索引后进行了刷新,因此文档计数是正确的。
但是,当我重新编制索引时,新文档会添加到旧索引中。因此,在重新索引结束时,一些文档丢失了(实际上并没有丢失,只是在重新编制索引之后才添加它们。)
我不敢在重新索引开始时将新索引别名为官方索引名称。因为,在实际文档丢失的情况下,重新索引期间所有新添加的文档都将在新索引中。我希望如果新索引失败,我可以简单地删除它而不影响旧索引。
如果我可以区分两个索引,或者我可以检索在一些检查点时间之后添加的所有文档,那么这不会成为问题。
我在Diff indices in ElasticSearch看了一篇帖子,询问如何区分两个索引但没有答案。