Skip to content

Latest commit

 

History

History
33 lines (26 loc) · 1.48 KB

55_Has_parent.asciidoc

File metadata and controls

33 lines (26 loc) · 1.48 KB

通过父文档查询子文档

虽然 nested 查询只能返回最顶层的文档 ,但是父文档和子文档本身是彼此独立并且可被单独查询的。我们使用 has_child 语句可以基于子文档来查询父文档,使用 has_parent 语句可以基于子文档来查询父文档。

has_parenthas_child 非常相似,下面的查询将会返回所有在 UK 工作的雇员:

GET /company/employee/_search
{
  "query": {
    "has_parent": {
      "type": "branch", (1)
      "query": {
        "match": {
          "country": "UK"
        }
      }
    }
  }
}
  1. 返回父文档 typebranch 的所有子文档

has_parent 查询也支持 score_mode 这个参数,但是该参数只支持两种值: none (默认)和 score 。每个子文档都只有一个父文档,因此这里不存在将多个评分规约为一个的情况, score_mode 的取值仅为 scorenone

不带评分的 has_parent 查询

has_parent 查询用于非评分模式(比如 filter 查询语句)时, score_mode 参数就不再起作用了。因为这种模式只是简单地包含或排除文档,没有评分,那么 score_mode 参数也就没有意义了。