elasticsearch/docs/reference/query-languages/esql/esql-metadata-fields.md
Colleen McGinnis b7e3a1e14b
[docs] Migrate docs from AsciiDoc to Markdown (#123507)
* delete asciidoc files

* add migrated files

* fix errors

* Disable docs tests

* Clarify release notes page titles

* Revert "Clarify release notes page titles"

This reverts commit 8be688648d.

* Comment out edternal URI images

* Clean up query languages landing pages, link to conceptual docs

* Add .md to url

* Fixes inference processor nesting.

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
Co-authored-by: Liam Thompson <leemthompo@gmail.com>
Co-authored-by: Martijn Laarman <Mpdreamz@gmail.com>
Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
2025-02-27 17:56:14 +01:00

2.5 KiB
Raw Blame History

navigation_title mapped_pages
Metadata fields
https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-metadata-fields.html

{{esql}} metadata fields [esql-metadata-fields]

{{esql}} can access metadata fields. The currently supported ones are:

  • _index: the index to which the document belongs. The field is of the type keyword.
  • _id: the source documents ID. The field is of the type keyword.
  • _version: the source documents version. The field is of the type long.
  • _ignored: the ignored source document fields. The field is of the type keyword.
  • _score: when enabled, the final score assigned to each row matching an ES|QL query. Scoring will be updated when using full text search functions.

To enable the access to these fields, the FROM source command needs to be provided with a dedicated directive:

FROM index METADATA _index, _id

Metadata fields are only available if the source of the data is an index. Consequently, FROM is the only source commands that supports the METADATA directive.

Once enabled, these fields will be available to subsequent processing commands, just like other index fields:

FROM ul_logs, apps METADATA _index, _version
| WHERE id IN (13, 14) AND _version == 1
| EVAL key = CONCAT(_index, "_", TO_STR(id))
| SORT id, _index
| 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

Similar to index fields, once an aggregation is performed, a metadata field will no longer be accessible to subsequent commands, unless used as a grouping field:

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