must, filter, should, must_not и вложенные группы собираются визуально.
Elasticsearch Query Builder
Соберите рабочий Query DSL без ручной возни с JSON: условия, bool-логика, сортировка, агрегации и проверка по маппингу — с готовым запросом для API или Kibana.
Примеры:
Какой тип запроса выбрать?
Краткая шпаргалка: ищете слова в тексте — 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.
Дополнительные параметры
Вставьте маппинг вашего индекса — ответ GET /index/_mapping целиком или только блок mappings / properties. Появится автодополнение имён полей, а валидатор начнёт проверять, что тип запроса подходит для типа поля.
Как работает bool-запрос.
В Elasticsearch условия объединяются внутри bool-запроса: must работает как AND и влияет на релевантность (score), filter — как AND без подсчёта релевантности (быстрее и кэшируется), should — как OR, а must_not исключает документы. Если задано только одно условие must, конструктор выводит его без обёртки bool.
Инструмент найдёт неверные поля, опасные 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-фильтра или подготовка агрегации занимают считанные секунды.