zoukankan      html  css  js  c++  java
  • (36)ElasticSearch文档修改,删除原理解析

      修改文档内容有两种方式

      1、全部替换:相当于添加一个新文档,把原有文档全部覆盖掉,比如要修改一个age,其余字段也要全部指定。 其实是把原文档标记为deleted,又创建了一个新文档,随着数据的增加,es会在合适的时间把标记为deleted的文档删除掉。

    PUT /lib/user/1
    {
    "first_name":"Jane",
    "last_name":"Lucy",
    "age":27,
    "about":"I like to collect rock albums",
    "interests":["music"]
    }

      2、部分替换:使用_update 只需要指明要修改的字段即可,es查询出document然后使用用户提交过来的数据更新到document中,已有的document被标记为deleted

    然后再创建一个新的document。

    POST /lib/user/4/_update
    {
    "doc":{
    "age":28
    }
    }

      删除文档,也是先标记为deleted,es在合适的时间再删除掉。

    DELETE /lib/user/4

      两种方式的区别:

      post方式比put方式网络传输的次数要少,从而提高了性能,post方式从查询文档到修改文档,再到创建新的文档都是在es内部实现的,post方式发生并发冲突的可能性降低了。

  • 相关阅读:
    tcp/ip的通俗讲述(转)
    linux中的read_link
    浅拷贝和深拷贝
    JAVA的动态代理Jdk实现方式
    友元函数
    孤儿进程、僵尸进程
    waitpid()函数
    wait()函数
    dup2函数
    exec族函数
  • 原文地址:https://www.cnblogs.com/javasl/p/12643392.html
Copyright © 2011-2022 走看看