zoukankan      html  css  js  c++  java
  • Elasticsearch技术解析与实战(七)Elasticsearch partial update

    普通的partial update

    1.插入测试数据

    PUT /test_index/test_type/10
    {
      "test_field1": "test1",
      "test_field2": "test2"
    }

    2.更新

    POST /test_index/test_type/10/_update
    {
      "doc": {
        "test_field2": "updated test2"
      }
    }

    基于groovy脚本执行partial update

    1.内置脚本

      插入测试数据

    PUT /test_index/test_type/11
    {
      "num": 0,
      "tags": []
    }

      更新

    POST /test_index/test_type/11/_update
    {
       "script" : "ctx._source.num+=1"
    }

    2.外部脚本

      更新

    
    POST /test_index/test_type/11/_update
    {
      "script": {
        "lang": "groovy", 
        "file": "test-add-tags",
        "params": {
          "new_tag": "tag1"
        }
      }
    }

    用脚本删除文档

    
    POST /test_index/test_type/11/_update
    {
      "script": {
        "lang": "groovy",
        "file": "test-delete-document",
        "params": {
          "count": 1
        }
      }
    }

    upsert操作

    POST /test_index/test_type/11/_update
    {
       "script" : "ctx._source.num+=1",
       "upsert": {
           "num": 0,
           "tags": []
       }
    }

     partial update内置乐观锁并发控制

    post /index/type/id/_update?retry_on_conflict=5&version=6
  • 相关阅读:
    gcc -l:手动添加链接库
    gcc -S xx
    gcc -E xx.c
    gcc xx -o xx
    gcc -c xx.c 选项讲解
    GCC选项
    关于Apache日志的统计
    Vxlan——原理
    MySQL常见面试题
    php笔试题(3)--转载
  • 原文地址:https://www.cnblogs.com/cnki/p/7507130.html
Copyright © 2011-2022 走看看