繁体   English   中英

使用适当的更新重新索引 elasticsearch 中的文档

[英]Reindexing documents in elasticsearch with proper updates

我需要使用更新的映射和不同的索引设置(例如分片数)将所有文档重新索引到新索引。

这些事件在 Kafka 主题中发布,然后由将事件推送到弹性搜索的服务使用。 所以,我不想在重新索引时停止使用事件。

为此,我在 spring 应用程序的application.properties中保留了primaryIndex (旧索引的名称)和secondaryIndex (新索引的名称)。 因此,在索引文档时,应用程序会将事件写入两个索引(主索引和辅助索引)并仅从主索引读取。 现在我将运行_reindex API 将文档从旧索引移动到新索引。 由于重新索引将持续大约 4-5 天,因此我想避免的_reindex API 可能会覆盖事件。

如何确保我的文档不会被_reindex API 覆盖?

重新索引完成后,我可以从我的应用程序属性中删除二级索引,并将primaryIndex替换为新的索引名称,然后也可以从新索引中读取部分。

或者有没有更好的方法来实现同样的目标?

您可以指示_reindex API 仅当新索引中不存在文档时才将其移动到新索引。 如果文档已经存在于新索引中,那么它可以是新事件或更新事件,您不想被覆盖。

您可以在重新索引 API 中给出op_type: 'create' 欲了解更多信息,请点击链接https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html

希望这能回答你的问题:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM