专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

ES实战七、全文检索-ElasticSearch-入门-put&post修改数据

接第6节

4、更新文档

更新操作 参数或结论
POST
customer/external/1/_update
{
“doc”: {
“name”: “Jane Doe”,
“age”: 20
}
}
或者POST
customer/external/1
{
“name”: “John Nash2”
}
或者PUT
customer/external/1
{
“name”: “John Nash3”
}
不同 POST 操作会对比源文档数据,如果相同不会有什么操作,文档 version 、_seq_no 不增加;
PUT 操作总会将数据重新保存并增加 version 版本;
带 _update 对比元数据如果一样就不进行任何操作。
看场景 对于大并发更新,不带update;
对于大并发查询偶尔更新,带update;对比更新,重新计算分配规则。
更新同时增加属性
POST
customer/external/1/_update
{
“doc”: {
“name”: “Jane Doe”,
“age”: 20
}
}
更新同时增加属性
PUT&POST
customer/external/1
{
“name”: “John Nash2”,
“age”: 40
}

使用带 _update 的 post 请求更新数据,在 postman 中使用 post 方法发送 http://192.168.56.10:9200/customer/external/1/_update 请求,参数传:

{
     "doc": {
          "name": "John Nash"
     }
}

发送请求可以得到下面的结果,可以看到更新成功:

75_1.png再次发送请求,可以看到如果数据相同,对比原来数据,与原来一样就什么都不做, _version_seq_no也不会变: 75_2.png

使用_update 的 post 请求更新数据,在 postman 中使用 post 方法发送 http://192.168.56.10:9200/customer/external/1 请求, 参数同上,可以看到,每点击一次就会更新一次数据,不会做数据的校验:

75_3.png

注意,对于不带 _update 的更新,传参时可以使用

  {
       "doc": {
            "name": "John Nash",
            "age":40
       }
  }

也可以使用:

  {
       "name": "John Nash2",
       "age": 40
  }


参考:

Elasticsearch Reference

elastic

全文搜索引擎 Elasticsearch 入门教程

文章永久链接:https://tech.souyunku.com/37525

未经允许不得转载:搜云库技术团队 » ES实战七、全文检索-ElasticSearch-入门-put&post修改数据

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们