ES|QL 構文リファレンス

基本構文

ES|QL クエリは、ソースコマンド に続いて、パイプ文字で区切られたオプションの一連の 処理コマンド で構成されます: |。例えば:

Esql

  1. source-command
  2. | processing-command1
  3. | processing-command2

クエリの結果は、最終処理コマンドによって生成されたテーブルです。

サポートされているすべてのコマンド、関数、および演算子の概要については、コマンド および 関数と演算子 を参照してください。

可読性のために、このドキュメントでは各処理コマンドを新しい行に配置しています。ただし、ES|QL クエリを1行で記述することもできます。以下のクエリは前のものと同じです:

Esql

  1. source-command | processing-command1 | processing-command2

識別子

識別子は、次の場合にバックティックで引用する必要があります (` ):

  • 文字で始まらない場合、_ または @
  • 他の文字のいずれかが文字、数字、または _ でない場合

例えば:

Esql

  1. FROM index
  2. | KEEP `1.field`

引用された識別子を使用する関数エイリアスを参照する場合、引用された識別子のバックティックは別のバックティックでエスケープする必要があります。例えば:

Esql

  1. FROM index
  2. | STATS COUNT(`1.field`)
  3. | EVAL my_count = `COUNT(``1.field``)`

リテラル

ES|QL は現在、数値リテラルと文字列リテラルをサポートしています。

文字列リテラル

文字列リテラルは、ダブルクォート (") で区切られた Unicode 文字のシーケンスです。

Esql

  1. // Filter by a string value
  2. FROM index
  3. | WHERE first_name == "Georgi"

リテラル文字列自体にクォートが含まれている場合、これらはエスケープする必要があります (\\")。ES|QL は、便利なトリプルクォート (""") 区切りもサポートしています:

Esql

  1. ROW name = """Indiana "Indy" Jones"""

特殊文字 CR、LF、および TAB は、通常のエスケープで提供できます: \r\n\t、それぞれ。

数値リテラル

数値リテラルは、10進数および指数表記で受け入れられ、指数マーカー (e または E) で始まり、数字、10進数点 . または負号 - で始まります:

Sql

  1. 1969 -- integer notation
  2. 3.14 -- decimal notation
  3. .1234 -- decimal notation starting with decimal point
  4. 4E5 -- scientific notation (with exponent marker)
  5. 1.2e-3 -- scientific notation with decimal point
  6. -.1e2 -- scientific notation starting with the negative sign

整数の数値リテラルは、integerlong または double 型に暗黙的に変換され、リテラルの値を最初に収容できるものが選ばれます。

浮動小数点リテラルは、double 型に暗黙的に変換されます。

異なる型の定数値を取得するには、数値の 変換関数 のいずれかを使用してください。

コメント

ES|QL は C++ スタイルのコメントを使用します:

  • シングルラインコメントにはダブルスラッシュ //
  • ブロックコメントには /**/

Esql

  1. // Query the employees index
  2. FROM employees
  3. | WHERE height > 2

Esql

  1. FROM /* Query the employees index */ employees
  2. | WHERE height > 2

Esql

  1. FROM employees
  2. /* Query the
  3. * employees
  4. * index */
  5. | 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