Как мне обрабатывать поля в elasticsearch, содержащие '_'?

Я использую Монго-Коннектор с таргетингом на эластичный поиск. Это отлично подходит для поддержания в актуальном состоянии elasticsearch, но у меня проблема с одним из полей, потому что оно содержит '_'. Данные постоянно реплицируются / передаются из mongodb, если я запустил переименование / переиндексирование, новые документы снова начнут отображаться с подчеркиванием.

Kibana не поддерживает символы подчеркивания в начале поля. Как лучше всего справиться с этим?

Я подал проблема с elastic2-doc-manager для Монго-Коннектор для поддержки узлов приема, но это похоже на гораздо большую проблему с кибаной, все мои попытки исправить эту проблему с помощью полей сценария и переименования поля не увенчались успехом.

Это кажется огромной проблемой. Я вижу символы подчеркивания в данных повсюду, это кажется очень плохим решением со стороны команды кибаны.

Ошибка Кибаны:Как мне обрабатывать поля в elasticsearch, содержащие '_'?

Я нашел ссылку на эту проблему на github, но без решения.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
1 536
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поля, начинающиеся с _, зарезервированы для использования в Elasticsearch. Kibana не поддерживает поля с _ в настоящее время, по крайней мере, пока. Запрос на это - https://github.com/elastic/kibana/issues/14856 все еще открыт.

До тех пор, если вы хотите использовать поле в визуализациях и т. д., Я считаю, что вам нужно его переименовать.

Хотя вы не можете легко переименовать поле без использования logstash или filebeat, а Mongo-Connector не поддерживает ни один из них, вы можете вместо этого использовать поле со сценарием, как показано ниже, для создания нового поля и копирования значения поля _. Таким образом, вы можете использовать новое поле для визуализации и т. д. Добавьте новое поле со сценарием, например. itemType с помощью приведенного ниже сценария и посмотрите, работает ли он.

doc['_itemType.keyword'].value

Пожалуйста, Примечание, хотя так можно использовать только поля ключевых слов, поля текстового типа работать не будут. Если ваше поле _itemType имеет текстовый тип, измените сопоставление, включив в него подполе keyword типа ключевого слова в _itemType, и попробуйте поле со сценарием.

Мой вопрос в том, как мне переименовать это поле? Документы добавляются и обновляются в прямом эфире из mongo db.

Aaron 26.10.2018 18:48

Это сработало. Я несколько раз пробовал скриптовые поля, но не включал ключевое слово.

Aaron 29.10.2018 18:03

Другие вопросы по теме