连接查询
编辑连接查询
编辑在像 Elasticsearch 这样的分布式系统中执行完整的 SQL 式连接查询的代价非常高昂。 因此,Elasticsearch 提供了两种旨在水平扩展的连接形式。
-
nested
查询 - 文档可能包含
nested
类型的字段。 这些字段用于索引对象数组,其中每个对象都可以作为独立的文档进行查询(使用nested
查询)。 -
has_child
和has_parent
查询 - 在单个索引内的文档之间可以存在
join
字段关系。has_child
查询返回其子文档与指定查询匹配的父文档,而has_parent
查询返回其父文档与指定查询匹配的子文档。
另请参阅 terms
查询中的 terms-lookup 机制,它允许您从另一个文档中包含的值构建 terms
查询。
注意
编辑允许高开销查询
编辑如果 search.allow_expensive_queries
设置为 false,则不会执行连接查询。