123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- [[esql-enrich]]
- === `ENRICH`
- You can use `ENRICH` to add data from your existing indices to incoming records.
- It's similar to <<ingest-enriching-data, ingest enrich>>, but it works at query time.
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich-result]
- |===
- `ENRICH` requires an <<enrich-policy,enrich policy>> to be executed.
- The enrich policy defines a match field (a key field) and a set of enrich fields.
- `ENRICH` will look for records in the <<enrich-index,enrich index>> based on the match field value.
- The matching key in the input dataset can be defined using `ON <field-name>`; if it's not specified,
- the match will be performed on a field with the same name as the match field defined in the <<enrich-policy,enrich policy>>.
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_on]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_on-result]
- |===
- You can specify which attributes (between those defined as enrich fields in the policy) have to be added to the result,
- using `WITH <field1>, <field2>...` syntax.
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_with]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_with-result]
- |===
- Attributes can also be renamed using `WITH new_name=<field1>`
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_rename]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/docs-ignoreCsvTests.csv-spec[tag=enrich_rename-result]
- |===
- By default (if no `WITH` is defined), `ENRICH` will add all the enrich fields defined in the <<enrich-policy,enrich policy>>
- to the result.
- In case of name collisions, the newly created fields will override the existing fields.
|