POST zeppelin/examples/AV6nU7M9HTZ4wJwaOOJj/_update
{
    "name": "新闻主题分布",
    "url": "notebook/2CTNKD25S"
}

PUT test/type1/1{
    "counter" : 1,
    "tags" : ["red"]
}
增量某一字段
POST yuantest/type1/1/_update
{
    "script" : {
        "inline": "ctx._source.counter += count",
        "lang": "painless",
        "params" : {
            "count" : 4
        }
    }
}
 
增加列表属性字段
POST yuantest/type1/1/_update
{
    "script" : {
        "inline": "ctx._source.tags.add(params.tag)",
        "lang": "painless",
        "params" : {
            "tag" : "blue"
        }
    }
}
 
增加新字段
POST yuantest/type1/1/_update
{
    "script" : "ctx._source.new_field = \"value_of_new_field\""
}
 
POST yuantest/type1/1/_update
{
    "doc" : {
        "name" : "new_name"
    }
}
 
删除字段
POST yuantest/type1/1/_update
{
    "script" : "ctx._source.remove(\"new_field\")"
}
 
如果tag字段中有red字段,则删除该记录(不会循环做,只会删除第一条符合条件的数据)
POST yuantest/type1/1/_update
{
    "script" : {
        "inline": "if (ctx._source.tags.contains(params.tag)) { ctx.op = \"delete\" } else { ctx.op = \"none\" }",
        "lang": "painless",
        "params" : {
            "tag" : "red"
        }
    }
}

有记录执行script,没记录走upsert
script如何写:https://stackoverflow.com/questions/26257884/remove-objects-from-array-elastic-search
POST yuantest/type1/1/_update
{
    "script" : {
        "inline": "ctx._source.counter += params.count",
        "lang": "painless",
        "params" : {
            "count" : 4
        }
    },
    "upsert" : {
        "counter" : 1
    }
}
 
若没有id为1的记录,则将doc的内容作为记录
POST yuantest/type1/1/_update
{
    "doc" : {
        "name" : "new_name"
    },
    "doc_as_upsert" : true
}
posted on 2018-08-21 11:07  笨拙的忍者  阅读(130)  评论(0编辑  收藏  举报