为什么Kibana使用PUT拒绝幂等更新操作

时间:2018-07-22 00:56:35

标签: elasticsearch kibana

最近我使用Kibana控制台更新ElasticSearch中现有文档的字段,为此使用PUT方法时看到此错误,这使我感到非常困惑。

{
  "error": "Incorrect HTTP method for uri [/product/_doc/1/_update] and method [PUT], allowed: [POST]",
  "status": 405
}

我使用的查询是

PUT /product/_doc/1/_update
{
  "doc": {"price": 95, "tags": ["Elasticsearch"]}
}

我认为应该是幂等的。有人可以帮助我理解为什么这里只能使用POST方法吗?我的想法是PUT方法用于幂等运算,因此对我来说,PUT应该是唯一的候选人,而不是POST。

1 个答案:

答案 0 :(得分:0)

根据您阅读HTTP语义的方式,PUT将完全替换资源,并且您需要PATCH进行更新(Elasticsearch不支持)。同样,_update端点将接受docscript,而后一个端点不一定是幂等的,例如进行脚本化的upsert。

通常,Elasticsearch尽可能使用RESTful,但会在需要时做出务实的选择。