Поиск с помощью Elasticsearch
Статья создана
Обновлена 11 апреля 2024 г.
Важно
Сервис Yandex Managed Service for Elasticsearch недоступен с 11 апреля 2024 года.
Вы можете создать кластер OpenSearch в Yandex Cloud в качестве альтернативы Elasticsearch.
Elasticsearch выступает не только как хранилище документов, но также и как инструмент для поиска и анализа данных в документах с помощью:
- Структурированных запросов (structured queries) по типу SQL-запросов: они позволяют найти документы с набором полей, которые удовлетворяют заданным условиям.
- Полнотекстовых запросов (full text queries): они позволяют найти заданную строку в документах и отсортировать результаты по степени релевантности. В том числе такие запросы позволяют выполнять поиск с автодополнением, поиск фраз, поиск похожих строк и так далее. Дополнительную информацию о полнотекстовом поиске см. в документации Elasticsearch
. - Сложносоставных запросов (complex queries), сочетающих в себе предыдущие типы запросов.
В Managed Service for Elasticsearch запросы всех этих типов можно выполнять, используя следующие инструменты:
- JSON-запросы
, написанные с использованием Elasticsearch QueryDSL . - URI-запросы
, в которых строка запроса в формате Lucene передается в GET-параметре:?q=<строка_запроса>
. - SQL-запросы
. Elasticsearch полностью поддерживает SQL-запросы, не требуя наличия какого-либо промежуточного посредника между собой и SQL.
Некоторые возможности поиска в Elasticsearch:
- Поиск может производиться как по конкретному индексу в кластере, так и по нескольким индексам.
- Поддерживается асинхронный поиск
для больших запросов, которые могут выполняться длительное время.
Подробную информацию о возможностях поиска см. в документации Elasticsearch