Query Lab

Elasticsearch Query Builder

Соберите рабочий Query DSL без ручной возни с JSON: условия, bool-логика, сортировка, агрегации и проверка по маппингу — с готовым запросом для API или Kibana.

Работает локальноМаппинг и запросы не покидают браузер
Быстрый старт

Примеры:

01 · BUILDERВизуальный конструктор
Условия запросаВыберите логику, тип запроса, поле и значение.
Какой тип запроса выбрать?

Краткая шпаргалка: ищете слова в тексте — match; точное значение (статус, тег, ID) — term для одного и terms для нескольких; диапазон чисел или дат — range; проверить, что поле заполнено — exists; поиск по шаблону — wildcard или prefix; поиск с опечатками — fuzzy; сложное выражение с AND/OR — query_string; логика со скобками вида A AND (B OR C) — вложенная группа bool.

ТипКогда использоватьПример
matchПолнотекстовый поиск: текст разбивается на слова, найдутся документы с любым из них (с учётом анализатора). Для текстовых полей (text).title : wireless headphones
match_phraseПоиск точной фразы: слова должны идти подряд и в том же порядке. Для текстовых полей (text).message : "out of memory"
termТочное совпадение значения без анализа текста. Для keyword, чисел, дат и boolean; для текстовых полей используйте подполе .keyword.status : published
termsТочное совпадение с любым из перечисленных значений — как IN в SQL. Значения указываются через запятую.status : draft, published
rangeДиапазон значений: от (gte) и/или до (lte). Подходит для чисел и дат, поддерживает выражения вида now-7d.price : 100 … 500 / created_at : now-7d …
existsНайдёт документы, в которых поле существует и не равно null. Значение не требуется.email
wildcardПоиск по шаблону: * — любое количество символов, ? — один символ. Работает по точному значению (keyword); шаблон с * в начале выполняется медленно.host : web-*
prefixНайдёт значения, начинающиеся с указанной строки. Для keyword-полей.sku : AB-
fuzzyПоиск с допуском опечаток (редакционное расстояние): «adidsa» найдёт «adidas».brand : adidsa → adidas
query_stringВыражение на синтаксисе Lucene: AND, OR, NOT, скобки, кавычки, field:value. Мощный инструмент, но строгий к синтаксису.(error OR warn) AND service:api
bool (group)Вложенная группа bool: объединяет несколько условий в один блок — как скобки в логическом выражении. Нужна для логики вида A AND (B OR C); внутри доступны те же must / filter / should / must_not, и группы можно вкладывать друг в друга.status:active AND (type:a OR type:b)

Условий нет — будет сформирован запрос match_all.

Дополнительные параметры
JSON → BUILDER

Импортировать существующий запрос

Вставьте JSON body или запрос из Kibana Dev Tools. Основные bool-условия, from/size, _source, сортировки и агрегации вернутся в визуальный конструктор.

Как работает bool-запрос.

В Elasticsearch условия объединяются внутри bool-запроса: must работает как AND и влияет на релевантность (score), filter — как AND без подсчёта релевантности (быстрее и кэшируется), should — как OR, а must_not исключает документы. Если задано только одно условие must, конструктор выводит его без обёртки bool.

Весь bool без ручного JSON

must, filter, should, must_not и вложенные группы собираются визуально.

Проверка по маппингу

Инструмент найдёт неверные поля, опасные wildcard и агрегации по text.

Двусторонняя работа

Импортируйте готовый DSL, исправьте его визуально и заберите JSON, cURL или Kibana.

Бесплатный онлайн-конструктор запросов Elasticsearch. Собирайте запросы Query DSL визуально, не набирая JSON вручную: выберите тип запроса (match, match_phrase, term, terms, range, exists, wildcard, prefix, fuzzy, query_string), укажите поле и значение, задайте bool-контекст — must, filter, should или must_not. Встроенная шпаргалка подсказывает, какой тип запроса выбрать в каждой ситуации.

Вставьте маппинг индекса — и конструктор начнёт автодополнять имена полей и валидировать запрос: предупредит о term по text-полю, match по keyword, сортировке и агрегации по text, несуществующих полях (с подсказкой «возможно, вы имели в виду»), перепутанных границах range и других типичных ошибках. Поддерживаются вложенные bool-группы для логики вида A AND (B OR C), автоматическое оборачивание условий по nested-полям в nested-запрос, сортировка, пагинация from/size, _source, track_total_hits, minimum_should_match и агрегации: terms, avg, sum, min, max, cardinality, value_count, date_histogram, histogram. Результат — JSON, cURL или сниппет для Kibana Dev Tools.

Все вычисления выполняются локально в браузере — запросы никуда не передаются и не сохраняются. Удобный инструмент для разработчиков, DevOps-инженеров и аналитиков, работающих с Elasticsearch и OpenSearch: прототип поискового запроса, отладка bool-фильтра или подготовка агрегации занимают считанные секунды.

Похожие инструменты