|
@@ -0,0 +1,60 @@
|
|
|
+[[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.
|