Как найти поля с конфликтами сопоставления
Мои настройки индекса в Kibana говорят мне, что у меня есть поля с конфликтами сопоставления в моих шаблонах индекса logstash-*.
Какой самый простой способ узнать, какие поля имеют конфликтующее отображение и / или по каким показателям возникает конфликт?
6 ответов
Так как я не мог найти конфликт отображения в графическом интерфейсе. Я прошел трудный путь, проанализировал мою конфигурацию на предмет отсутствия / конфликта типов полей, нашел нарушителя и переиндексировал мои данные.
Начиная как минимум с Kibana 5.2, вы можете ввести "конфликт" в поле "Фильтр", чтобы отфильтровать все поля до тех, которые имеют конфликт. Справа находится столбец с именем "control", и для каждого поля есть кнопка со значком карандаша. Нажав на это, вы узнаете, какие индексы имеют какое отображение.
Поля отфильтрованы только для тех, у которых есть конфликты:
Вы можете легко узнать, как отображаются поля, используя API сопоставления в Kibana.
Если вы знаете, что у вас есть конфликт сопоставления, я предполагаю, что вы знаете имя поля, в котором возник конфликт. Они будут перечислены в разделе Management/Index Patterns/index_pattern.
Если у вас есть индексы, которые создаются ежедневно, например production-2020.06.16, вы можете выполнять поиск по всем индексам с помощью production*.
Перейдите в Инструменты разработчика и введите этот запрос, изменив шаблон индекса (production*) и ConflictedFieldname в соответствии с вашими потребностями.
GET production*/_mapping/field/conflictedFieldname
При этом будут извлечены все индексы, соответствующие шаблону production *, и будет отображено сопоставление для конфликтующего имени поля для каждого индекса. Прокрутите список и посмотрите, какой из них не похож на другой.
Вы также можете ознакомиться с документацией Elasticsearch здесь: Документация Elasticsearch: Получить API сопоставления полей
Причина конфликта заключается в том, что первое значение, которое входит в индекс, используется Elasticsearch, чтобы наилучшим образом угадать, какой тип данных должен быть. Вы можете убедиться, что это всегда один и тот же тип, разместив шаблон для интересующего вас шаблона индекса.
В Elasticsearch 5.5.2 вы можете щелкнуть раскрывающийся список справа от поля поиска "Фильтр" и выбрать "конфликт". Это на странице шаблонов индексов.
Если щелкнуть столбец типа на странице шаблонов индекса, где отображается предупреждение, индексы следует отсортировать по типу. Конфликтующие поля будут иметь тип «конфликт».