1
我一次發送1000到Elasticsearch Bulk API與劇本很慢Elasticsearch批量更新
我有我想要的更新文檔,相當於兩個領域在同一乘法內場的場景文件。這是我如何通過PHP客戶端建立我的查詢
{ "update" : { "_id" : "0", "_type" : "type1", "_index" : "index1"} }
{ "script" : { "inline": "ctx._source.x=ctx._source.y*ctx._source.z"} }
我使用PHP客戶端爲此一次發送1000。
總共需要185000條記錄,需要30分鐘。有什麼辦法可以優化它嗎?
您是否嘗試過update_by_query? –
我不能在這種情況下使用update_by_query,因爲我有一套我必須執行此更新查詢大致像100k以上的ID。並且每個項目具有乘法的唯一值。查詢更新適用於一組結果並且無法訪問每個單獨文檔的ctx.source.field的情況。 –
通過從5.0開始的查詢更新支持腳本。至於Ids問題,您可以分批分批列出併發送多個update_by_query請求。無論如何,對100K記錄的重新索引將花費幾分鐘時間。如果你負擔不起,你必須找到其他方法。 –