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。

猜你喜欢

转载自blog.csdn.net/weixin_43275277/article/details/106764018