ElasticSearch - запрос на добавление строки к существующей строке в поле документа - PullRequest
0 голосов
/ 08 июля 2019

Все наши документы ElasticSearch содержат поле с именем Categories, которое содержит строку значений, разделенных запятыми. Длина каждого значения между запятыми составляет 5 символов, а поле может содержать от 1 до 12 5-значных значений.

Мне нужно выполнить запрос к индексу, который говорит добавление ,ABCDE к концу поля Categories всех документов, , если поле уже содержит значение ABCDE в нем, в в этом случае ничего не добавляйте к полю.

1 Ответ

1 голос
/ 08 июля 2019

Вы можете использовать ElasticSearch _update_by_query , как показано ниже

POST my_index/my_type/_update_by_query
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "Categories": "ABCDE"
          }
        }
      ]
    }
  },
  "script": {
    "inline": "ctx._source.Categories += ', ABCDE'",
    "lang": "painless"
  }
}

Приведенный выше запрос добавит строку ', ABCDE' к категориям, если в категориях отсутствует термин ABCDE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...