ElasticSearch使用脚本更新属性值

时间:2016-02-19 13:09:55

标签: elasticsearch

我提供了以下类型'标签'的文件。现在我想更新文件,即我想删除标签" hello"。

{
    "id": 1,
    "tags": [ "hello", "stackoverflow, "promising" ]
}

{
    "id": 2,
    "tags": [ "stackoverflow, "promising" ]
}

{
    "id": 3,
    "tags": [ "hello" ]
}

因此,ElasticSearch可以使用一个查询来获取以下结果

{
    "id": 1,
    "tags": [ "stackoverflow, "promising" ]
}

{
    "id": 2,
    "tags": [ "stackoverflow, "promising" ]
}

{
    "id": 3,
    "tags": [ ]
}

1 个答案:

答案 0 :(得分:0)

您需要使用update query plugin。安装此插件,然后运行以下查询。

{
"query": {
"match_all": {}
 },
 "script" : "ctx._source.tags.remove('hello')"
}

希望这有帮助。