Поиск и анализ данных
Вы можете использовать Elasticsearch в качестве базового хранилища документов для извлечения документов и их метаданных. Однако настоящая мощь Elasticsearch исходит от его расширенных возможностей поиска и анализа.
Вы будете использовать комбинацию API-точек конечного доступа и языка запросов для взаимодействия с вашими данными.
REST API
Используйте REST API для управления кластером Elasticsearch и индексации и поиска данных. В целях тестирования вы можете отправлять запросы непосредственно из командной строки или через инструменты разработчика Консоль в Kibana. Из своих приложений вы можете использовать клиент на языке программирования по вашему выбору.
Обратитесь к первым шагам с Elasticsearch для практического примера использования _search точки конечного доступа, добавления данных в Elasticsearch и выполнения базовых поисков в синтаксисе Query DSL.
Языки запросов
Elasticsearch предоставляет множество языков запросов для взаимодействия с вашими данными.
Query DSL является основным языком запросов для Elasticsearch на сегодняшний день.
ES|QL — это новый язык запросов с каналами и вычислительный движок, который был добавлен впервые в версии 8.11.
ES|QL пока не поддерживает все функции Query DSL. Ожидайте новые функции и функциональность ES|QL в каждом релизе.
Обратитесь к Языкам запросов для получения полного обзора языков запросов, доступных в Elasticsearch.
Query DSL
Query DSL — это полнофункциональный язык запросов в формате JSON, который позволяет выполнять сложные поиски, фильтрацию и агрегации. Это оригинальный и наиболее мощный язык запросов для Elasticsearch на сегодняшний день.
_search точка конечного доступа принимает запросы, написанные в синтаксисе Query DSL.
Поиск и фильтрация с помощью Query DSL
Query DSL поддерживает широкий спектр поисковых методов, включая следующие:
- Полный поиск по тексту: Поиск текстовых данных, которые были проанализированы и проиндексированы для поддержки запросов по фразам или близости, нечетких совпадений и т.д.
- Поиск по ключевым словам: Поиск точных совпадений с помощью
keywordполей. - Семантический поиск: Поиск
semantic_textполей с использованием плотного или разреженного векторного поиска по вложениям, сгенерированным в вашем кластере Elasticsearch. - Поиск векторов: Поиск похожих плотных векторов с помощью алгоритма kNN для вложений, сгенерированных вне Elasticsearch.
- Геопространственный поиск: Поиск местоположений и вычисление пространственных отношений с помощью геопространственных запросов.
Узнайте о полном наборе запросов, поддерживаемых Query DSL.
Вы также можете фильтровать данные с помощью Query DSL. Фильтры позволяют включать или исключать документы, извлекая документы, которые соответствуют определенным критериям на уровне полей. Запрос, использующий параметр filter, указывает контекст фильтра.
Анализ с помощью Query DSL
Агрегации являются основным инструментом для анализа данных Elasticsearch с помощью Query DSL. Агрегации позволяют создавать сложные сводки данных и получать представление о ключевых метриках, закономерностях и тенденциях.
Поскольку агрегации используют те же структуры данных, которые используются для поиска, они также очень быстры. Это позволяет анализировать и визуализировать данные в реальном времени. Вы можете искать документы, фильтровать результаты и выполнять аналитику одновременно на одних и тех же данных в одном запросе. Это означает, что агрегации рассчитываются в контексте запроса на поиск.
Доступны следующие типы агрегаций:
- Метрическая: Вычисление метрик, таких как сумма или среднее значение, из значений полей.
- Корзина: Группировка документов в корзины на основе значений полей, диапазонов или других критериев.
- Канал: Выполнение агрегаций на результатах других агрегаций.
Запускайте агрегации, указав параметр aggs API поиска. Узнайте больше в Запуск агрегации.
ES|QL
Язык запросов Elasticsearch (ES|QL) — это язык запросов с каналами для фильтрации, преобразования и анализа данных. ES|QL построен на базе нового вычислительного движка, где функции поиска, агрегации и преобразования непосредственно выполняются в самом Elasticsearch. Синтаксис ES|QL также может быть использован в различных инструментах Kibana.
_query точка конечного доступа принимает запросы, написанные в синтаксисе ES|QL.
Сегодня он поддерживает подмножество функций, доступных в Query DSL, но быстро развивается.
Он поставляется с полным набором функций и операторов для работы с данными и имеет прочную интеграцию с Kibana Discover, панелями и визуализациями.
Узнайте больше в Начало работы с запросами ES|QL или пройдите наш тренинг.
Список доступных языков запросов
В следующей таблице обобщены все доступные языки запросов Elasticsearch, чтобы помочь вам выбрать правильный для вашего случая использования.
| Название | Описание | Сценарии использования | API-точка конечного доступа |
|---|---|---|---|
Основной язык запросов Elasticsearch. Мощный и гибкий язык в формате JSON, позволяющий выполнять сложные запросы. | Полный поиск по тексту, семантический поиск, поиск по ключевым словам, фильтрация, агрегации и многое другое. | ||
Представленный в версии 8.11, язык запросов Elasticsearch (ES|QL) — это язык запросов с каналами для фильтрации, преобразования и анализа данных. | Первоначально ориентирован на работу с временными рядами данных, такими как журналы и метрики. Прочная интеграция с Kibana для запросов, визуализации и анализа данных. Пока не поддерживает полный поиск по тексту. | ||
Язык запросов событий (EQL) — это язык запросов для событийных временных рядов данных. Данные должны содержать поле | Разработан для сценария безопасности по анализу угроз. | ||
Позволяет выполнять запросы с использованием SQL-подобного синтаксиса в режиме реального времени к данным Elasticsearch. Доступны драйверы JDBC и ODBC для интеграции с инструментами бизнес-аналитики (BI). | Позволяет пользователям, знакомым с SQL, запрашивать данные Elasticsearch с помощью знакомого синтаксиса для BI и отчетности. | ||
Язык запросов Kibana (KQL) — это текстовый язык запросов для фильтрации данных при доступе к ним через интерфейс Kibana. | Используйте KQL для фильтрации документов, где значение поля существует, соответствует заданному значению или находится в заданном диапазоне. | Нет данных |
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/search-analyze.html