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

 

转载于:https://www.cnblogs.com/jHenry/p/3811381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值