在ES裡, 更新documents到index不是一件簡單的事情, 我們得在這裡留個心眼.
眾所皆知RESTful風格使用HTTP的動詞來進行所謂的Update, ES也是如此.
要注意到ES的更新有兩種方式
- 整個docment更新(取代,覆蓋)
- 根據某個field更新(count += 3, append字符串, 替數組增加元素, 刪除field)
//根據某個field更新$ curl -XPOST ‘localhost:9200/test/type1/1/_update‘ -d ‘{ "script" : "ctx._source.counter += count", "params" : { "count" : 4 } }‘
通常我們會遇到要更新的某個field不存在, 那我們可以使用 upsert 來給定默認的值
$ curl -XPOST ‘localhost:9200/test/type1/1/_update‘ -d ‘{ "script" : "ctx._source.counter += 1", "upsert" : { "counter" : 0 } }‘
Elasticsearch Updating documents,布布扣,bubuko.com
时间: 2024-12-21 16:21:06