Добавить строку в массив в Elasticsearch - PullRequest
0 голосов
/ 16 сентября 2018

Допустим, у меня есть документ

{
    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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...