This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Joining queries
editJoining queries
editPerforming full SQL-style joins in a distributed system like Elasticsearch is prohibitively expensive. Instead, Elasticsearch offers two forms of join which are designed to scale horizontally.
-
nested
query -
Documents may contain fields of type
nested
. These fields are used to index arrays of objects, where each object can be queried (with thenested
query) as an independent document. -
has_child
andhas_parent
queries -
A
join
field relationship can exist between documents within a single index. Thehas_child
query returns parent documents whose child documents match the specified query, while thehas_parent
query returns child documents whose parent document matches the specified query.
Also see the terms-lookup mechanism in the terms
query, which allows you to build a terms
query from values contained in
another document.
Notes
editAllow expensive queries
editJoining queries will not be executed if search.allow_expensive_queries
is set to false.