Elasticsearch: агрегация на разных полях - PullRequest
0 голосов
/ 06 марта 2019

Я использую определенное программное обеспечение для индексации данных в Elasticsearch, но он создает документы, подобные этому:

{
  contact: +31644488857,
  name: "Jan",
  address: "street 3"
}

и

{
   person: {
       phone: +31688844499,
       address: "street 5"
   }
   name: "Piet"
}

Теперь я ищуспособ создать таблицу в кибане, которая объединяет телефонных номеров , но обрабатывает их как одно поле.Поэтому я не хочу создавать разные таблицы или несколько столбцов для нескольких полей.Я просто хочу создать одну таблицу, которая показывает все номера телефонов, независимо от того, из какого поля это.

Есть ли способ сделать это?Я хотел бы использовать поле сценариев, но, похоже, я не могу агрегировать поля сценариев ...

1 Ответ

0 голосов
/ 06 марта 2019

Вы, безусловно, можете создать в Кибане поле со сценарием для (keyword) строк, которые вы позже сможете агрегировать.

Просто перейдите в «Управление> Шаблоны индекса», выберите соответствующий шаблон индекса, создайте новое поле сценария типа string и используйте следующий сценарий:

[doc['contact.keyword'].value, doc['person.phone.keyword'].value]

Это создаст новое скриптовое поле, содержащее массив, элементами которого будут поля вашего номера телефона. Затем вы можете визуализировать это поле в представлении «Обнаружение» или в агрегировании терминов в представлении «Визуализация».

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