在Elasticsearch中将字符串追加到数组

时间:2018-09-16 12:13:04

标签: elasticsearch elasticsearch-painless

假设我有文件

{
    someId: 'A'
}

{
    someId: 'B'
    tag: ['C', 'D']
}

{
    someId: 'C'
}

如果数组存在,我想向该数组追加一个字符串,否则创建一个数组并为其分配数组。我发现以下查询可以做到这一点。但是我不知道该用脚本写什么。

{
  "script": {
    "inline": "// TODO if null create array with one element else append to value to array",
  },
  "query":  {
        "constant_score" : {
            "filter" : {
                "terms" : { 
                    "someId" : ["A", "B"]
                }
            }
        }
    }
}

下面是需要在脚本中使用的伪代码(JavaScript),但我不知道如何在ES无痛脚本中将其翻译。

if(doc.tag === undefined) {
    doc.tag = ['value'];
} else {
    doc.tag.append('value');
}

0 个答案:

没有答案