首页 > 代码库 > Elasticsearch Updating documents

Elasticsearch Updating documents

在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    }}