ES|QL 语法参考
编辑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"
字符串字面量是由双引号 ("
) 括起来的一系列 Unicode 字符。
ROW name = """Indiana "Indy" Jones"""
如果字面量字符串本身包含引号,则需要对其进行转义 (\\"
)。为了方便起见,ES|QL 还支持三引号 ("""
) 分隔符。
CR、LF 和 TAB 等特殊字符可以使用常规转义字符提供:分别为 \r
、\n
和 \t
。
编辑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
数值字面量以十进制和科学计数法(使用指数标记 e
或 E
)接受,以数字、小数点 .
或负号 -
开头。
整数数值字面量会隐式转换为 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
/*
和 */
用于块注释
编辑- 可以使用时间跨度字面量来表示日期时间间隔和时间跨度。时间跨度字面量是数字和限定符的组合。支持以下限定符:
-
millisecond
/milliseconds
/ms
-
second
/seconds
/sec
/s
-
minute
/minutes
/min
-
hour
/hours
/h
-
day
/days
/d
-
week
/weeks
/w
-
month
/months
/mo
-
quarter
/quarters
/q
year
/years
/yr
/y
-
时间跨度字面量不区分空格。以下表达式均有效:
-
1day
-
1day