连接查询
OpenSearch 是一个分布式系统,数据分散在多个节点上。因此,在 OpenSearch 中运行类似 SQL 的 JOIN 操作会消耗大量资源。作为替代方案,OpenSearch 提供了以下执行连接操作的查询,这些查询针对跨多个节点的扩展进行了优化:
- 用于搜索嵌套字段的查询
nested
查询:作为其他查询的包装器,用于搜索嵌套字段。嵌套字段对象被搜索时,就好像它们被索引为单独的文档一样。
- 用于搜索通过 join 字段类型连接的文档的查询,该字段类型在同一索引中的文档之间建立父/子关系
has_child
查询:搜索其子文档与查询匹配的父文档。has_parent
查询:搜索其父文档与查询匹配的子文档。parent_id
查询:搜索连接到特定父文档的子文档。
如果 search.allow_expensive_queries
设置为 false
,则连接查询不会执行。