[英]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.