[DevOps] Использование JSON в Kibana поиске (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
При поиске из Kibana вы обычно вводите фактическую строку запроса в верхнюю панель, как мы видели это в уроке. Если строки запроса недостаточно для того, что вам нужно, у вас также есть возможность написать JSON в этой строке.Вы можете записать JSON-объект, который вы бы прикрепили к ключу "query (запрос)" при взаимодействии с Elasticsearch в этом поле, например:
{ "range": { "numeric": { "gte": 10 } } }
Это было бы эквивалентно записи numeric:>=10 в это поле. Чаще всего это имеет смысл только в том случае, если вам нужен доступ к опциям, которые доступны только в JSON-запросе, но не в строке запроса.
Предупреждение: если вы впишете JSON query_string в это поле (например, потому что хотите иметь доступ к lowercase_expanded_terms), Kibana сохранит правильный JSON для запроса, но снова покажет вам (после нажатия клавиши enter) только часть “запроса” вашего JSON. Это может быть очень запутанным и, конечно, если Вы сейчас введете текст и нажмете enter еще раз, он также потеряет параметры, которые Вы установили через JSON, так что это действительно должно быть использовано с осторожностью.
Особые случаиВ этом разделе должны быть затронуты еще несколько особых случаев, о которых можно подумать: "Я прочитал весь учебник, я все понял, но все равно мой запрос не находит тех данных, которые я ожидал от него получить".Elasticseach не находит термины в длинных полях.Это, по моему опыту, довольно распространенная проблема, и ее непросто решить, если вы не знаете, что ищете.Elasticsearch имеет параметр ignore_above, который вы можете установить в отображении для каждого поля. Это числовое значение, которое приведет к тому, что Elasticsearch НЕ будет индексировать значения дольше, чем задано значением ignore_above, когда будет вставлен документ. Значение все равно будет сохранено, поэтому при просмотре документа вы его увидите, но не сможете найти.Как проверить, установлено ли это значение в поле? Вам нужно получить отображение из Elasticsearch, вызвав <your-elasticsearch-domain>/<your-index-name>/_mapping. В возвращаемом JSON где-то будет отображение для искомого поля, которое может выглядеть следующим образом:
"fieldName": {
"type": "string",
"ignore_above": 15
}
В этом случае значения выше 15 символов не индексируются, и их поиск невозможен.Пример: Используя вышеприведенное отображение, давайте вставим два документа в этот Elasticsearch:
{ "fieldName": "short string" }
{ "fieldName": "a string longer as ignore_above" }
Если вы теперь перечислите все документы (в Kibana или Elasticsearch), то увидите, что оба документа находятся там и значение обоих полей - это то, что вы вставили в строку. Но если вы теперь будете искать fieldName:longer, вы не получите никаких результатов (в то время как fieldName:short вернет первый документ). Elasticsearch обнаружил, что значение "строка длиннее чем ignore_above" длиннее 15 символов, и поэтому оно сохраняет его только в документе, но не индексирует его, поэтому вы не сможете искать в нем ничего, так как в инвертированном индексе для этого поля не будет содержимого этого значения.Поиск требует определенного поля, без которого он не работает.Если вы можете выполнить поиск, например, для author:foo, но не для foo, то, скорее всего, это "проблема" с вашим default_field. Elasticsearch предваряет поле по умолчанию перед foo. Это поле можно настроить так, чтобы оно отличалось от _all.Возможно, настройка поля index.query.default_field была установлена на что-то другое, и Elasticsearch не использует поле _all, что может привести к проблеме.Также возможно, что поле _all ведет себя не так, как вы ожидали, потому что оно было настроено каким-то другим образом. Вы можете исключить конкретные поля из поля _all (например, в приведенном выше примере fieldName могло быть исключено из индексации в поле _all) или были изменены опции анализа/индексации в отображении поля _all.
Уже сейчас в OTUS открыт набор на новый поток курса "DevOps практики и инструменты". Перевод данного фрагмента статьи был подготовлен в рамках набора на курс.Также приглашаем всех желающих посетить бесплатный вебинар, на котором эксперты OTUS расскажут о ситуации на рынке DevOps и карьерных перспективах.ЗАПИСАТЬСЯ НА ВЕБИНАР
===========
Источник:
habr.com
===========
===========
Автор оригинала: Tim Roes
===========Похожие новости:
- [Системное администрирование, DevOps, Kubernetes] Стримхата: ломаем яичницу и жарим Кубернетес
- [DevOps, Распределённые системы, Микросервисы, Kubernetes] Первый митап Почтатеха «DevOps на набережной»
- [DevOps] Создание вашего первого модуля Ansible (перевод)
- [Облачные вычисления, DevOps, Облачные сервисы, Kubernetes] Вебинар «Как запустить проект в Kubernetes за 60 минут» 29 апреля
- [Управление разработкой, Управление продуктом, DevOps] Как технологический радар помогает осознанному развитию корпоративной ИТ-экосистемы
- [Виртуализация, Машинное обучение, DevOps, Data Engineering] Apache Spark 3.1: Spark on Kubernetes теперь общедоступен (перевод)
- [Open source, Виртуализация, Облачные вычисления, Учебный процесс в IT] Гайд по git stash, разбиваем диск под Linux с GNU Parted, шпаргалка по SQLite и полезное руководство по графикам
- [Настройка Linux, DevOps, DIY или Сделай сам, Kubernetes] Как я сломал и починил кластер Kubernetes, работающий на Raspberry Pi (перевод)
- [Машинное обучение, Искусственный интеллект] Переосмысление предобучения и самообучения (перевод)
- [Управление персоналом] Онбординг как пятизвездочный отель: пять важных мыслей для оптимального трудоустройства новых сотрудников (перевод)
Теги для поиска: #_devops, #_json, #_kibana, #_devops, #_blog_kompanii_otus (
Блог компании OTUS
), #_devops
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:13
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
При поиске из Kibana вы обычно вводите фактическую строку запроса в верхнюю панель, как мы видели это в уроке. Если строки запроса недостаточно для того, что вам нужно, у вас также есть возможность написать JSON в этой строке.Вы можете записать JSON-объект, который вы бы прикрепили к ключу "query (запрос)" при взаимодействии с Elasticsearch в этом поле, например: { "range": { "numeric": { "gte": 10 } } }
Предупреждение: если вы впишете JSON query_string в это поле (например, потому что хотите иметь доступ к lowercase_expanded_terms), Kibana сохранит правильный JSON для запроса, но снова покажет вам (после нажатия клавиши enter) только часть “запроса” вашего JSON. Это может быть очень запутанным и, конечно, если Вы сейчас введете текст и нажмете enter еще раз, он также потеряет параметры, которые Вы установили через JSON, так что это действительно должно быть использовано с осторожностью.
"fieldName": {
"type": "string", "ignore_above": 15 } { "fieldName": "short string" }
{ "fieldName": "a string longer as ignore_above" } Уже сейчас в OTUS открыт набор на новый поток курса "DevOps практики и инструменты". Перевод данного фрагмента статьи был подготовлен в рамках набора на курс.Также приглашаем всех желающих посетить бесплатный вебинар, на котором эксперты OTUS расскажут о ситуации на рынке DevOps и карьерных перспективах.ЗАПИСАТЬСЯ НА ВЕБИНАР
=========== Источник: habr.com =========== =========== Автор оригинала: Tim Roes ===========Похожие новости:
Блог компании OTUS ), #_devops |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 19:13
Часовой пояс: UTC + 5