29 lines
987 B
Plaintext
29 lines
987 B
Plaintext
|
[[java-joining-queries]]
|
||
|
=== Joining queries
|
||
|
|
||
|
Performing 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.
|
||
|
|
||
|
<<java-query-dsl-nested-query,`nested` query>>::
|
||
|
|
||
|
Documents may contains fields of type `nested`. These
|
||
|
fields are used to index arrays of objects, where each object can be queried
|
||
|
(with the `nested` query) as an independent document.
|
||
|
|
||
|
<<java-query-dsl-has-child-query,`has_child`>> and <<java-query-dsl-has-parent-query,`has_parent`>> queries::
|
||
|
|
||
|
A parent-child relationship can exist between two
|
||
|
document types within a single index. The `has_child` query returns parent
|
||
|
documents whose child documents match the specified query, while the
|
||
|
`has_parent` query returns child documents whose parent document matches the
|
||
|
specified query.
|
||
|
|
||
|
include::nested-query.asciidoc[]
|
||
|
|
||
|
include::has-child-query.asciidoc[]
|
||
|
|
||
|
include::has-parent-query.asciidoc[]
|
||
|
|
||
|
|