【发布时间】:2021-01-02 20:09:11
【问题描述】:
我需要将我的所有文档重新索引到具有更新映射和不同索引设置(例如分片数)的新索引。
事件在 Kafka 主题中发布,然后由将事件推送到弹性搜索的服务使用。所以,我不想在重新索引时停止使用事件。
为了实现这一点,我将primaryIndex(旧索引的名称)和secondaryIndex(新索引的名称)保留在一个spring 应用程序的application.properties 中。因此,在索引文档时,应用程序会将事件写入两个索引(主索引和辅助索引)并仅从主索引读取。现在我将运行_reindex API 将文档从旧索引移动到新索引。由于重新索引将持续大约 4-5 天,因此我想避免的事件可能会被 _reindex API 覆盖。
如何确保我的文档不会被_reindex API 覆盖?
重新索引完成后,我可以从我的应用程序属性中删除二级索引,并将primaryIndex 替换为新索引名称,然后也可以从新索引中读取部分。
或者有没有更好的方法来达到同样的效果?
【问题讨论】: