ES|QL メタデータフィールド

ES|QL は メタデータフィールド にアクセスできます。現在サポートされているものは次のとおりです:

  • _index:ドキュメントが属するインデックス。フィールドのタイプは keyword です。
  • _id:ソースドキュメントの ID。フィールドのタイプは keyword です。
  • _version:ソースドキュメントのバージョン。フィールドのタイプは long です。
  • _ignored:無視されるソースドキュメントフィールド。フィールドのタイプは keyword です。

これらのフィールドへのアクセスを有効にするには、FROM ソースコマンドに専用のディレクティブを提供する必要があります:

Esql

  1. FROM index METADATA _index, _id

メタデータフィールドは、データのソースがインデックスである場合にのみ利用可能です。したがって、FROMMETADATA ディレクティブをサポートする唯一のソースコマンドです。

一度有効にされると、これらのフィールドは他のインデックスフィールドと同様に、後続の処理コマンドで利用可能になります:

Esql

  1. FROM ul_logs, apps METADATA _index, _version
  2. | WHERE id IN (13, 14) AND _version == 1
  3. | EVAL key = CONCAT(_index, "_", TO_STR(id))
  4. | SORT id, _index
  5. | KEEP id, _index, _version, key
id:long _index:keyword _version:long key:keyword
13 apps 1 apps_13
13 ul_logs 1 ul_logs_13
14 apps 1 apps_14
14 ul_logs 1 ul_logs_14

インデックスフィールドと同様に、集約が実行されると、メタデータフィールドは後続のコマンドにアクセスできなくなります。ただし、グループ化フィールドとして使用される場合は除きます:

Esql

  1. FROM employees METADATA _index, _id
  2. | STATS max = MAX(emp_no) BY _index
max:integer _index:keyword
10100 employees