| 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.
 |