苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper万能框架(V2.3-含.netcore) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 521|回复: 2

[搜索引擎] 63-Elasticsearch通过父文档查询子文档

[复制链接]
发表于 2019-1-13 15:43:14 | 显示全部楼层 |阅读模式
通过父文档查询子文档

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

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

GET /company/employee/_search
{
  "query": {
    "has_parent": {
      "type": "branch",
      "query": {
        "match": {
          "country": "UK"
        }
      }
    }
  }
}


  • 返回父文档 type 是 branch 的所有子文档


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

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

发表于 2019-1-13 16:23:53 | 显示全部楼层
发表于 2019-1-13 17:58:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1)

GMT+8, 2019-11-22 00:36

© 2017-2018

快速回复 返回顶部 返回列表