XPOST和XPUT之间的区别

dai*_*yue 1 rest post curl put elasticsearch

我正在学习Elasticsearch,发现XPOSTXPUT“更新”或“替换”文档大致相同。它们都更改字段值。

curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
  "name": "Jane Doe"
}'

curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
  "doc": { "name": "Jane Doe" }
}'
Run Code Online (Sandbox Code Playgroud)

因此他们都将名称字段更改为“ Jane Doe”。我想知道在上述情况下XPOST和之间有什么区别XPUT

Val*_*Val 6

这两个命令并不完全相同。第一个(带有PUT)将更新完整的文档,而不仅仅是您要发送的字段。

第二个字段(带有POST)将进行部分更新,仅更新您要发送的字段,而不会触摸文档中已有的其他字段。