12345678910111213141516171819202122232425262728293031323334 |
- [[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.
- <<query-dsl-nested-query,`nested` query>>::
- Documents may contain fields of type <<nested,`nested`>>. These
- fields are used to index arrays of objects, where each object can be queried
- (with the `nested` query) as an independent document.
- <<query-dsl-has-child-query,`has_child`>> and <<query-dsl-has-parent-query,`has_parent`>> queries::
- A <<parent-join,`join` field relationship>> can exist between
- documents 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.
- Also see the <<query-dsl-terms-lookup,terms-lookup mechanism>> in the `terms`
- query, which allows you to build a `terms` query from values contained in
- another document.
- include::nested-query.asciidoc[]
- include::has-child-query.asciidoc[]
- include::has-parent-query.asciidoc[]
- include::parent-id-query.asciidoc[]
|