對於,Elasticsearch之CURL命令的UPDATE包括局部更新和全部更新。可以去看我寫的另一篇博客。
Elasticsearch之更新(全部更新和局部更新)
總結:
ES全部更新,使用PUT或者POST
ES局部更新,使用POST
ES可以使用PUT或者POST對文檔進行更新(包括局部更新和全部更新),如果指定ID的文檔已經存在,則可執行更新操作。
執行更新操作的時候注意細節
1) ES首先將舊的文檔標記為刪除狀態
2) 然后添加新的文檔
3)舊的文檔不會立即消失,但是你也無法訪問
4)ES會在你繼續添加更多數據的時候在后台清理已經標記為刪除狀態的文檔。
我這里,僅僅,演示一個,局部更新。
局部更新,即可以添加新字段或者更新已有字段(必須使用POST)
即,下面,字段nmae不更新,只更新age,所以,這才叫做局部更新。


[hadoop@master elasticsearch-2.4.0]$ curl -XPOST http://master:9200/zhouls/user/1/_update -d '{"doc" : {"name":"john" ,"age":"30"}}' {"_index":"zhouls","_type":"user","_id":"1","_version":2,"_shards":{"total":2,"successful":2,"failed":0}}[hadoop@master elasticsearch-2.4.0]$ [hadoop@master elasticsearch-2.4.0]$ [hadoop@master elasticsearch-2.4.0]$

