How to solve type=version_conflict_engine_exception
這篇介紹為什麼會發生type=version_conflict_engine_exception並提出解決方法。
發生情境
1 2 3 4
| 當兩個Process對同一個index、_id進行update時,就會有先後順序的Conflict問題發生。 因update先後順序不重要,且確保兩句update都要執行時,可以設定retry_on_conflict參數來達到重試。
retry_on_conflict default 為 0
|
KQL example
1 2 3 4 5 6 7
| POST /website/pageviews/1/_update?retry_on_conflict=5 { "script" : "ctx._source.views+=1", "upsert": { "views": 0 } }
|
REST API example
1 2
| UpdateRequest request = new UpdateRequest(indexName, documentId).doc(params); request.retryOnConflict(5);
|