我找到了使用 golang 在彈性搜索中更新數據的解決方案。數據大約是 1,000,000+++ 個文檔,并且必須特定于文檔的 id。我可以使用批量操作在 mongoDB 中進行更新,但在 elasticsearch 中找不到它是否有類似的操作?或任何人都想用特定的 ID 更新彈性搜索中的大量數據。提前致謝。
1 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
通常,您可以使用批量 API 進行此類批量更新。您可以使用相同的 id 再次索引數據,也可以只運行更新。如果您將其作為一次性更新進行,您可以使用 CURL 從命令行推送更新。
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }
如果您要設置自定義字段,其他選項是使用 update_by_query。通過查詢更新,您還可以將其與管道混合以更新現有數據。
無論您是否嘗試使用來自不同索引的信息運行更新(在這種情況下,您可以使用豐富的處理器,它在 7.5 及更高版本中可用)或者您只是想添加一個新字段并使用某些規(guī)則更新它,這完全歸結為它已經使用了文檔上可用的屬性。
因此,對于不同類型的場景,可以使用不同的選項。當數據源是外部時,批量 API 更合適。但是如果數據已經在 Elasticsearch 上可用,那么通過查詢更新是合適的。
您還可以使用管道腳本查看重新索引。但同樣,課程規(guī)則的馬匹也適用于此。
- 1 回答
- 0 關注
- 233 瀏覽
添加回答
舉報
0/150
提交
取消