簡體   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