ES|QL 構文リファレンス
基本構文
ES|QL クエリは、ソースコマンド に続いて、パイプ文字で区切られたオプションの一連の 処理コマンド で構成されます: |
。例えば:
Esql
source-command
| processing-command1
| processing-command2
クエリの結果は、最終処理コマンドによって生成されたテーブルです。
サポートされているすべてのコマンド、関数、および演算子の概要については、コマンド および 関数と演算子 を参照してください。
可読性のために、このドキュメントでは各処理コマンドを新しい行に配置しています。ただし、ES|QL クエリを1行で記述することもできます。以下のクエリは前のものと同じです:
Esql
source-command | processing-command1 | processing-command2
識別子
識別子は、次の場合にバックティックで引用する必要があります (`
):
- 文字で始まらない場合、
_
または@
- 他の文字のいずれかが文字、数字、または
_
でない場合
例えば:
Esql
FROM index
| KEEP `1.field`
引用された識別子を使用する関数エイリアスを参照する場合、引用された識別子のバックティックは別のバックティックでエスケープする必要があります。例えば:
Esql
FROM index
| STATS COUNT(`1.field`)
| EVAL my_count = `COUNT(``1.field``)`
リテラル
ES|QL は現在、数値リテラルと文字列リテラルをサポートしています。
文字列リテラル
文字列リテラルは、ダブルクォート ("
) で区切られた Unicode 文字のシーケンスです。
Esql
// Filter by a string value
FROM index
| WHERE first_name == "Georgi"
リテラル文字列自体にクォートが含まれている場合、これらはエスケープする必要があります (\\"
)。ES|QL は、便利なトリプルクォート ("""
) 区切りもサポートしています:
Esql
ROW name = """Indiana "Indy" Jones"""
特殊文字 CR、LF、および TAB は、通常のエスケープで提供できます: \r
、\n
、\t
、それぞれ。
数値リテラル
数値リテラルは、10進数および指数表記で受け入れられ、指数マーカー (e
または E
) で始まり、数字、10進数点 .
または負号 -
で始まります:
Sql
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++ スタイルのコメントを使用します:
- シングルラインコメントにはダブルスラッシュ
//
- ブロックコメントには
/*
と*/
Esql
// Query the employees index
FROM employees
| WHERE height > 2
Esql
FROM /* Query the employees index */ employees
| WHERE height > 2
Esql
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
1 day
1 day