Skip to content

Commit e876623

Browse files
committed
[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
1 parent aaee222 commit e876623

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

docs/reference/query-languages/esql/esql-metadata-fields.md

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,41 @@ mapped_pages:
66

77
# {{esql}} metadata fields [esql-metadata-fields]
88

9+
{{esql}} can access [metadata fields](/reference/elasticsearch/mapping-reference/document-metadata-fields.md).
910

10-
{{esql}} can access [metadata fields](/reference/elasticsearch/mapping-reference/document-metadata-fields.md). The currently supported ones are:
11-
12-
* [`_index`](/reference/elasticsearch/mapping-reference/mapping-index-field.md): the index to which the document belongs. The field is of the type [keyword](/reference/elasticsearch/mapping-reference/keyword.md).
13-
* [`_id`](/reference/elasticsearch/mapping-reference/mapping-id-field.md): the source document’s ID. The field is of the type [keyword](/reference/elasticsearch/mapping-reference/keyword.md).
14-
* `_version`: the source document’s version. The field is of the type [long](/reference/elasticsearch/mapping-reference/number.md).
15-
* [`_ignored`](/reference/elasticsearch/mapping-reference/mapping-ignored-field.md): the ignored source document fields. The field is of the type [keyword](/reference/elasticsearch/mapping-reference/keyword.md).
16-
* `_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](/reference/query-languages/esql/functions-operators/search-functions.md).
17-
18-
To enable the access to these fields, the [`FROM`](/reference/query-languages/esql/commands/source-commands.md#esql-from) source command needs to be provided with a dedicated directive:
11+
To access these fields, use the `METADATA` directive with the [`FROM`](/reference/query-languages/esql/commands/source-commands.md#esql-from) source command. For example:
1912

2013
```esql
2114
FROM index METADATA _index, _id
2215
```
2316

24-
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.
17+
## Available metadata fields
18+
19+
The following metadata fields are available in {{esql}}:
20+
21+
| Metadata field | Type | Description |
22+
|---------------|------|-------------|
23+
| [`_id`](/reference/elasticsearch/mapping-reference/mapping-id-field.md) | [keyword](/reference/elasticsearch/mapping-reference/keyword.md) | Unique document ID. |
24+
| [`_ignored`](/reference/elasticsearch/mapping-reference/mapping-ignored-field.md) | [keyword](/reference/elasticsearch/mapping-reference/keyword.md) | Names every field in a document that was ignored when the document was indexed. |
25+
| [`_index`](/reference/elasticsearch/mapping-reference/mapping-index-field.md) | [keyword](/reference/elasticsearch/mapping-reference/keyword.md) | Index name. |
26+
| `_index_mode` | [keyword](/reference/elasticsearch/mapping-reference/keyword.md) | [Index mode](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting). For example: `standard`, `lookup`, or `logsdb`. |
27+
| `_score` | [`float`](/reference/elasticsearch/mapping-reference/number.md) | Query relevance score (when enabled). Scores are updated when using [full text search functions](/reference/query-languages/esql/functions-operators/search-functions.md). |
28+
| [`_source`](/reference/elasticsearch/mapping-reference/mapping-source-field.md) | Special `_source` type | Original JSON document body passed at index time (or a reconstructed version if [synthetic `_source`](/reference/elasticsearch/mapping-reference/mapping-source-field.md#synthetic-source) is enabled). This field is not supported by functions. |
29+
| `_version` | [`long`](/reference/elasticsearch/mapping-reference/number.md) | Document version number |
30+
31+
## Usage and limitations
32+
33+
- Metadata fields are only available when the data source is an index
34+
- The `_source` field is not supported by functions
35+
- Only the `FROM` command supports the `METADATA` directive
36+
- Once enabled, metadata fields work like regular index fields
37+
- Fields are dropped after aggregations unless used for grouping ([example](#group-results-by-metadata-fields))
38+
39+
## Examples
2540

26-
Once enabled, these fields will be available to subsequent processing commands, just like other index fields:
41+
### Basic metadata usage
42+
43+
Once enabled, metadata fields are available to subsequent processing commands, just like other index fields:
2744

2845
```esql
2946
FROM ul_logs, apps METADATA _index, _version
@@ -40,6 +57,8 @@ FROM ul_logs, apps METADATA _index, _version
4057
| 14 | apps | 1 | apps_14 |
4158
| 14 | ul_logs | 1 | ul_logs_14 |
4259

60+
### Metadata fields and aggregations
61+
4362
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:
4463

4564
```esql
@@ -51,3 +70,15 @@ FROM employees METADATA _index, _id
5170
| --- | --- |
5271
| 10100 | employees |
5372

73+
### Sort results by search score
74+
75+
```esql
76+
FROM products METADATA _score
77+
| WHERE MATCH(description, "wireless headphones")
78+
| SORT _score DESC
79+
| KEEP name, description, _score
80+
```
81+
82+
:::{tip}
83+
Refer to [{{esql}} for search](docs-content://solutions/search/esql-for-search.md#esql-for-search-scoring) for more information on relevance scoring and how to use `_score` in your queries.
84+
:::

0 commit comments

Comments
 (0)