Справочник по синтаксису ES|QL
Основной синтаксис
Запрос ES|QL состоит из команды-источника, за которой следует необязательный ряд команд обработки, разделенных символом трубы: |. Например:
source-command | processing-command1 | processing-command2
Результатом запроса является таблица, созданная последней командой обработки.
Для обзора всех поддерживаемых команд, функций и операторов см. Команды и Функции и операторы.
Для лучшей читаемости, в этом документе каждая команда обработки находится на новой строке. Однако вы можете записать запрос ES|QL в одну строку. Следующий запрос идентичен предыдущему:
source-command | processing-command1 | processing-command2
Идентификаторы
Идентификаторы должны быть заключены в обратные кавычки (`), если:
- они не начинаются с буквы,
_или@ - любой другой символ не является буквой, цифрой или
_
Например:
FROM index | KEEP `1.field`
При ссылке на псевдоним функции, который сам использует идентификатор в кавычках, обратные кавычки идентификатора в кавычках должны быть экранированы другой обратной кавычкой. Например:
FROM index | STATS COUNT(`1.field`) | EVAL my_count = `COUNT(``1.field``)`
Литералы
ES|QL в настоящее время поддерживает числовые и строковые литералы.
Строковые литералы
Строковый литерал — это последовательность символов Юникода, ограниченная двойными кавычками (").
// Filter by a string value FROM index | WHERE first_name == "Georgi"
Если сама строка-литерал содержит кавычки, эти кавычки необходимо экранировать (\\"). ES|QL также поддерживает разделитель в тройных кавычках (""") для удобства:
ROW name = """Indiana "Indy" Jones"""
Специальные символы CR, LF и TAB могут быть предоставлены с помощью обычного экранирования: \r, \n, \t, соответственно.
Числовые литералы
Числовые литералы принимаются в десятичном формате и в научной записи с маркером порядка (e или E), начиная либо с цифры, десятичной точки . или отрицательного знака -:
1969 -- integer notation 3.14 -- decimal notation .1234 -- decimal notation starting with decimal point 4E5 -- scientific notation (with exponent marker) 1.2e-3 -- scientific notation with decimal point -.1e2 -- scientific notation starting with the negative sign
Целочисленные числовые литералы неявно преобразуются к типу integer, long или double, в зависимости от того, какой из них может сначала вместить значение литерала.
Числовые литералы с плавающей точкой неявно преобразуются в тип double.
Для получения константных значений различных типов используйте одну из числовых функций преобразования типов.
Комментарии
ES|QL использует комментарии в стиле C++:
- двойной слеш
//для однострочных комментариев -
/*и*/для блочных комментариев
// Query the employees index FROM employees | WHERE height > 2
FROM /* Query the employees index */ employees | WHERE height > 2
FROM employees /* Query the * employees * index */ | WHERE height > 2
Литералы временных интервалов
Интервалы дат и временные интервалы могут быть выражены с помощью литералов временных интервалов. Литералы временных интервалов представляют собой комбинацию числа и временной единицы. Поддерживаемые временные единицы перечислены в таблице временных единиц. Более подробные примеры использования временных интервалов можно найти в использовании временных интервалов в ES|QL.
Литералы временных интервалов не чувствительны к пробелам. Эти выражения являются допустимыми:
-
1day -
1 day -
1 day
© 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/esql-syntax.html