我正在学习 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" }
}'

所以他们都把名字字段改成了“Jane Doe”。我想知道在上述上下文中 XPOSTXPUT 之间有什么区别。

最佳答案

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

第二个(使用 POST )将执行 部分更新 并且只更新您发送的字段,而不会触及文档中已经存在的其他字段。

10-06 12:38