elasticsearch8 put与post

POST:

POST /user/_create/5
{
   "name":"张三",
   "age":19,
   "desc":"法外狂徒",
   "tags":["游戏","666"]
}

创建_id为5的一条记录

POST /user/_update/5
{
  "doc":{
      "tags":["游戏","666","play"]
  }
}

只更新指定字段tags的值

PUT:

PUT /user/_doc/6
{
  "name":"张三",
  "age":19,
  "desc":"这。。。",
  "tags":["游戏","666"]
}

当_id为6的记录存在就修改,没有就新增

但要注意的是,当

PUT /user/_doc/6
{
  "desc":"法外狂徒"
}

这样修改的时候,其余字段会删除,只保留desc的字段,并修改值为“法外狂徒”

回答: 在Elasticsearch中,PUTPOST是两种不同的HTTP请求方法,用于创建或更新文档。PUT请求用于创建或更新具有指定ID的文档,而POST请求用于创建新的文档,由Elasticsearch自动生成ID。\[1\] 当使用PUT请求时,如果想使用自定义的_id,必须在_index、_type、_id三者都不同时才能接受请求。可以通过两种方法来实现这一点,它们实际上是做同一件事情。你可以选择适合自己的方式。如果同索引、同类型下已经存在同ID的文档,Elasticsearch会将旧文档标记为删除,并添加一个完整的新文档。旧版本文档不会立即消失,但也无法访问。当继续索引更多数据时,Elasticsearch会清理被删除的文档。\[2\] 当使用POST请求时,如果成功创建了一个新文档,Elasticsearch将返回正常的元数据,并且响应状态码是201 Created。另一方面,如果包含相同的_index、_type和_id的文档已经存在,Elasticsearch将返回409 Conflict响应状态码,并给出相应的错误信息。\[3\] #### 引用[.reference_title] - *1* *2* *3* [Elasticsearch-入门到精通-7 PUTPOST区别](https://blog.youkuaiyun.com/sundenskyqq/article/details/105058854)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值