mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 17:34:17 -04:00
* [DOCS] Update ESQL metadata fields page
**esql-metadata-fields.md:**
- restructured from bullet list to table format for metadata fields
- added `_index_mode` and `_source` fields to available metadata
- improved field descriptions (more detailed)
- added "usage and limitations" section
- reorganized examples into subsections with headers
- added `_score` sorting example
- added tip box linking to search documentation
* 🚙Drive by updates to search functions ref page
moved tutorial link into tip box at top
added cross-reference to search overview documentation
minor text flow improvements and punctuation fixes
* Fix id typo
* Apply suggestions from review
Co-authored-by: Bogdan Pintea <sig11@mailbox.org>
3.6 KiB
3.6 KiB
navigation_title | mapped_pages | |
---|---|---|
Metadata fields |
|
{{esql}} metadata fields [esql-metadata-fields]
{{esql}} can access metadata fields.
To access these fields, use the METADATA
directive with the FROM
source command. For example:
FROM index METADATA _index, _id
Available metadata fields
The following metadata fields are available in {{esql}}:
Metadata field | Type | Description |
---|---|---|
_id |
keyword | Unique document ID. |
_ignored |
keyword | Names every field in a document that was ignored when the document was indexed. |
_index |
keyword | Index name. |
_index_mode |
keyword | Index mode. For example: standard , lookup , or logsdb . |
_score |
float |
Query relevance score (when enabled). Scores are updated when using full text search functions. |
_source |
Special _source type |
Original JSON document body passed at index time (or a reconstructed version if synthetic _source is enabled). |
_version |
long |
Document version number |
Usage and limitations
- Metadata fields are only available when the data source is an index
- The
_source
type is not supported by functions - Only the
FROM
command supports theMETADATA
directive - Once enabled, metadata fields work like regular index fields
Examples
Basic metadata usage
Once enabled, metadata fields are 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 |
Metadata fields and aggregations
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 |
Sort results by search score
FROM products METADATA _score
| WHERE MATCH(description, "wireless headphones")
| SORT _score DESC
| KEEP name, description, _score
:::{tip}
Refer to {{esql}} for search for more information on relevance scoring and how to use _score
in your queries.
:::