Работа с полями в ELK 5.0

После перехода на ELK 5.0 стало невозможно фильтровать, сортировать данные по многим полям. Выдавалась следующая ошибка:

Discover: Fielddata is disabled on text fields by default. Set fielddata=true on [host] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

Это связано с тем, что теперь все текстовые поля находятся в режиме: fielddata=false

Подробнее можно почитать тут.

Что бы вернуть обратно такую способность, нужно добавить параметр fielddata=true в нужные поля.

Это можно сделать прямо из интерфейса Kibana, благо теперь появился так инструмент, как Dev Tools.

fielddata

Для этого выполним такой запрос:

PUT _mapping/logstash
{
"properties": {
"host": {
"type": "text",
"fielddata": true
}
}
}

Этот запрос добавит параметр «fielddata»: true в поле «host» в индекс logstash.

Запрос может вернуть ошибку, если такое поле есть еще в каком-то индексе:

{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Mapper for [type] conflicts with existing mapping in other types:\n[mapper [type] is used by multiple types. Set update_all_types to true to update [fielddata] across all types.]"
}
],
"type": "illegal_argument_exception",
"reason": "Mapper for [type] conflicts with existing mapping in other types:\n[mapper [type] is used by multiple types. Set update_all_types to true to update [fielddata] across all types.]"
},
"status": 400
}

Что бы применить запрос ко всем индексам нужно добавить такую конструкцию к нему: «?update_all_types»

PUT _mapping/logstash?update_all_types

.....

Добавить комментарий

Ваш адрес email не будет опубликован.