1.概述

官方文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/joining-queries.html

两种类型的查询

嵌套查询

has_child和has_parent

其中,has_child返回包含特定查询字段文档的父文档;

has_parent返回包含特定查询字段的父文档的子文档。

2.实例

2.1 嵌套查询

GET /_search
{"query": {"nested" : {"path" : "obj1","score_mode" : "avg","query" : {"bool" : {"must" : [{ "match" : {"obj1.name" : "blue"} },{ "range" : {"obj1.count" : {"gt" : 5}} }]}}}}
}

2.2 has_child 查询

GET /_search
{"query": {"has_child" : {"type" : "blog_tag","query" : {"term" : {"tag" : "something"}}}}
}

2.3 has_parent

GET /_search
{"query": {"has_parent" : {"parent_type" : "blog","query" : {"term" : {"tag" : "something"}}}}
}

2.4 parent_id 查询

PUT my_index
{"mappings": {"_doc": {"properties": {"my_join_field": {"type": "join","relations": {"my_parent": "my_child"}}}}}
}PUT my_index/_doc/1?refresh
{"text": "This is a parent document","my_join_field": "my_parent"
}PUT my_index/_doc/2?routing=1&refresh
{"text": "This is a child document","my_join_field": {"name": "my_child","parent": "1"}
}

GET /my_index/_search
{"query": {"parent_id": {"type": "my_child","id": "1"}}
}

转载于:https://www.cnblogs.com/davidwang456/p/10078301.html

elasticsearch的join查询相关推荐

  1. 分布式数据库 Join 查询设计与实现浅析 | 京东云技术团队

    相对于单例数据库的查询操作,分布式数据查询会有很多技术难题. 本文记录 Mysql 分库分表 和 Elasticsearch Join 查询的实现思路,了解分布式场景数据处理的设计方案. 文章从常用的 ...

  2. 02.elasticsearch bucket aggregation查询

    文章目录 1. bucket aggregation 查询类型概览 2. 数据准备 3. 使用样例 1. Terms Aggregation: 1. 普通的terms agg 2. 嵌套一个metri ...

  3. Elasticsearch 5: 聚集查询

    目录 1. 聚集查询 2. 指标聚集 2.1 平均值聚集 2.1.1 avg 聚集 2.2 计数聚集与极值聚集 2.2.1 计数聚集 2.2.2 极值聚集 2.3 统计聚集 2.3.1 stats 聚 ...

  4. SQL性能下降原因及Join查询

    原因 查询语句写得烂 索引失效 关联查询过多(设计缺陷) 服务器调优及各个参数设置(缓冲.线程数等) Join查询的SQL执行顺序 手写 SELECT <select_list> FROM ...

  5. 详解 Mysql LEFT JOIN和JOIN查询区别及原理

    一.Join查询原理 查询原理:MySQL内部采用了一种叫做 nested loop join(嵌套循环连接)的算法.Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然 ...

  6. 4.性能下降原因和常见的Join查询

    性能下降 SQL慢,执行时间长,等待时间长 1.查询语句写的烂 2.索引失效 单值索引失效 和 复合索引失效 3.关联查询太多join(设计缺陷或不得已的需求) 4.服务器调优及各个参数设置(缓冲.线 ...

  7. MySQL第9天:MySQL索引优化分析之join查询

    MySQL索引优化分析之join查询 #编写时间:2017.3.12 #编写地点:广州 常见join查询: 1.SQL执行顺序:手写.机读.总结 (1)手写 (2)机读 (3)总结 2.join图 3 ...

  8. 03.elasticsearch pipeline aggregation查询

    文章目录 1. pipeline aggregation查询语法 1. 符号代表 2. 聚合层级 2. pipeline aggregation 查询类型概览 1. sibling aggregati ...

  9. 01.elasticsearch metric aggregation 查询

    文章目录 1. 数据准备 2. metric aggregation分类 3.使用样例 1 . Avg Aggregation : 求query出来的结果的average 值 2 . Weighted ...

最新文章

  1. UML科普文,一篇文章掌握14种UML图
  2. win安装wordcloud报错解决方案
  3. Python gevent高并发(限制最大并发数、协程池)
  4. node-webkit学习(1)hello world
  5. OpenCV 4.1.2 发布,都有哪些新特性?
  6. python pdfminer解析pdf文件的每一行,得到每一行的坐标与每个字符的坐标
  7. Java 9 正式发布,终落地 Jigsaw 项目
  8. 第 1 章 课程概述
  9. 字节跳动 | 机器学习与推荐算法工程师培养计划
  10. 未解决:运行EtherCalc出错:Error: Cannot find module 'zappajs'
  11. 软件设计师历年真题与解析分享(05——17年)
  12. matlab GUI学习笔记4 如何添加并设置下拉菜单以及GUI解决不用直接用load的问题
  13. 网络与信息安全方向顶刊顶会
  14. GBase 8c开发接口
  15. python读json文件json.decoder.JSONDecodeError终极解决大法
  16. tablepc是什么平板电脑_给大家介绍一下,这是我新朋友三星Galaxy Tab S3
  17. 硬件学习笔记(一)AD入门+STM32C8T6最小开发板得制作
  18. ubuntu chmod命令
  19. 分布式系统限流策略/秒杀系统限流设计
  20. “第四产业”升级,中软国际“蝶变”

热门文章

  1. Linux 内核抓包功能实现基础(三) 抓包服务器的实现
  2. oracle中批量更新,oracle 批量更新
  3. java如何调windows框_java – JDialog.setAlwaysOnTop(true)将所有对话框带到Windows下的前面...
  4. goto是python的保留字吗,基于python goto的正确用法说明
  5. php流调签名,微信接口签名及调用流程详解 - 黎明互联-官方博客 - 黎明互联 - 区块链培训,PHP培训,IT培训,职业技能培训,追求极致!改变您的职业生涯!...
  6. 格式化字符串的几种方式
  7. cas跨域单点登录原理_CAS实现SSO单点登录原理
  8. 不同表_不同电脑剪视频的速度对比表20200617更新;附素材和方法
  9. IDEA上编写hadoop程序(Maven)【笔记自用】
  10. 图像条纹检测 python_【连载4.5】特征检测技术研究面向强反射表面的多传感器三维检测技术研究...