# Join 查询

原文链接  [https://www.elastic.co/guide/en/elasticsearch/reference/current/joining-queries.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/joining-queries.html)

译文链接 [Join 查询](/pages/viewpage.action?pageId=4260708)

贡献者 [小蚊子](/display/~lishuwen)

在像 **ElasticSearch** 这样的分布式系统中执行全 **SQL** 风格的连接查询代价昂贵，是不可行的。相应地，为了实现水平规模地扩展，**ElasticSearch** 提供了两种形式的 join。

*   _nested query _(嵌套查询)
    文档中可能包含嵌套类型的字段，这些字段用来索引一些数组对象，每个对象都可以作为一条独立的文档被查询出来(用嵌套查询)
*   _has_child _(有子查询)  and _has_parent _(有父查询) queries
    一类父子关系可以存在单个的索引的两个类型的文档之间。_has_child _查询将返回其子文档能满足特定的查询的父文档，而 _has_parent_ 则返回其父文档能满足特定查询的子文档

参考 term 查询中的[terms-lookup mechanism](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html#query-dsl-terms-lookup "Terms lookup mechanismedit") ，它允许你在另一个文档的值中创建一个term 查询。