elasticsearch:put和post的區別

put是於目標地址創建文檔,post是在目標地址下創建文檔。如:

curl -XPUT http://127.0.0.1:9200/megacorp/employee/3 -d '{"name":"star","age":25}'

curl -XPOST http://127.0.0.1:9200/megacorp/employee -d '{"name":"star","age":25}'

上面示例中,put的路徑是有id的,index+type+id唯一,我們自己指定了id,而post中路徑是沒有id的,數據提交由ES生成id。

同時put和post也遵循http的約定,put是冪等操作,多次操作put會更新原有記錄(ES中先刪除再創建),id是相同的,而post不是冪等的,多次提交會產生多條不同的記錄(id不同)。

當然,ES中post也可以指定id,多次請求同樣會覆蓋之前的數據,也是冪等操作,此時post作用等同於put。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章