美文网首页
【ES从入门到实战】七、全文检索-ElasticSearch-入

【ES从入门到实战】七、全文检索-ElasticSearch-入

作者: runewbie | 来源:发表于2020-05-24 11:13 被阅读0次

    接第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"
         }
    }
    

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

    在这里插入图片描述
    再次发送请求,可以看到如果数据相同,对比原来数据,与原来一样就什么都不做,_version_seq_no也不会变:
    在这里插入图片描述

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

    在这里插入图片描述

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

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

    也可以使用:

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

    参考:

    Elasticsearch Reference

    elastic

    全文搜索引擎 Elasticsearch 入门教程

    相关文章

      网友评论

          本文标题:【ES从入门到实战】七、全文检索-ElasticSearch-入

          本文链接:https://www.haomeiwen.com/subject/wfvdahtx.html