Поле B эластичного поиска заполнено массивом слов из значения поля A в документе - PullRequest
0 голосов
/ 16 января 2019

Я хотел бы добавить поле B, которое должно содержать массив со словами поля A. Я хотел бы использовать какой-нибудь сценарий, который разбивает значение поля A на части слов.

Так что-то вроде этого: Поле А: «Быстрый коричневый лис» Поле B: ["The", "Quick", "Brown", "Fox"]

Я борюсь с поиском в Google, как этого добиться в ElasticSearch 5.6

1 Ответ

0 голосов
/ 16 января 2019

Этого можно добиться с помощью обновления по API запросов и сценария, который разбивает fieldA и сохраняет полученный массив в fieldB:

POST test/_update_by_query
{
  "script": {
    "inline": "ctx._source.fieldB = /\\s+/.split(ctx._source.fieldA);",
    "lang": "painless"
  },
  "query": {
    "match_all": {}
  }
}

Вы получите это:

    {
      "fieldA" : "The brown fox",
      "fieldB" : [
        "The",
        "brown",
        "fox"
      ]
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...