You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/reference/query-languages/esql/esql-lookup-join.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,11 +20,11 @@ For example, you can use `LOOKUP JOIN` to:
20
20
21
21
* Your enrichment data changes frequently
22
22
* You want to avoid index-time processing
23
-
* You're working with regular indices
24
-
* You need to preserve distinct matches
23
+
* You want SQL-like behavior, so that multiple matches result in multiple rows
25
24
* You need to match on any field in a lookup index
26
25
* You use document or field level security
27
-
* You want to restrict users to a specific lookup indices that they can you
26
+
* You want to restrict users to use only specific lookup indices
27
+
* You do not need to match using ranges or spatial relations
28
28
29
29
## How the `LOOKUP JOIN` command works [esql-how-lookup-join-works]
30
30
@@ -108,7 +108,7 @@ FROM employees
108
108
To use `LOOKUP JOIN`, the following requirements must be met:
109
109
110
110
***Compatible data types**: The join key and join field in the lookup index must have compatible data types. This means:
111
-
* The data types must either be identical or be internally represented as the same type in Elasticsearch's type system
111
+
* The data types must either be identical or be internally represented as the same type in {esql}
112
112
* Numeric types follow these compatibility rules:
113
113
*`short` and `byte` are compatible with `integer` (all represented as `int`)
114
114
*`float`, `half_float`, and `scaled_float` are compatible with `double` (all represented as `double`)
@@ -120,9 +120,9 @@ For a complete list of supported data types and their internal representations,
120
120
121
121
The following are the current limitations with `LOOKUP JOIN`
122
122
123
-
*`LOOKUP JOIN` will be successful if the join field in the lookup index is a `KEYWORD` type. If the main index's join field is `TEXT` type, it must have an exact `.keyword` subfield that can be matched with the lookup index's `KEYWORD` field.
124
123
* Indices in [lookup](/reference/elasticsearch/index-settings/index-modules.md#index-mode-setting) mode are always single-sharded.
125
124
* Cross cluster search is unsupported. Both source and lookup indices must be local.
125
+
* Currently, only matching on equality is supported.
126
126
*`LOOKUP JOIN` can only use a single match field and a single index. Wildcards, aliases, datemath, and datastreams are not supported.
127
-
* The name of the match field in `LOOKUP JOIN lu_idx ON match_field` must match an existing field in the query. This may require renames or evals to achieve.
127
+
* The name of the match field in `LOOKUP JOIN lu_idx ON match_field` must match an existing field in the query. This may require `RENAME`s or `EVAL`s to achieve.
128
128
* The query will circuit break if there are too many matching documents in the lookup index, or if the documents are too large. More precisely, `LOOKUP JOIN` works in batches of, normally, about 10,000 rows; a large amount of heap space is needed if the matching documents from the lookup index for a batch are multiple megabytes or larger. This is roughly the same as for `ENRICH`.
0 commit comments