首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按parent_id分组的ES查询

是一种在Elasticsearch中进行数据检索和聚合的操作。在这种查询中,数据根据指定的parent_id字段进行分组,以便对每个分组进行聚合操作或者获取相关的子文档。

概念: 按parent_id分组的ES查询是一种基于Elasticsearch的分布式搜索和分析引擎,它使用倒排索引来快速存储、搜索和分析大量的数据。按parent_id分组的查询是其中一种常见的查询方式,用于根据指定的parent_id字段对文档进行分组。

分类: 按parent_id分组的ES查询可以分为两种类型:父子关系查询和嵌套关系查询。

  1. 父子关系查询:在这种查询中,文档之间存在明确的父子关系。每个子文档都有一个指向父文档的parent_id字段,通过指定parent_id字段进行分组,可以对具有相同父文档的子文档进行聚合操作或者获取相关的子文档。
  2. 嵌套关系查询:在这种查询中,文档之间存在嵌套关系,即一个文档中包含了其他文档。通过指定parent_id字段进行分组,可以对具有相同父文档的嵌套文档进行聚合操作或者获取相关的嵌套文档。

优势: 按parent_id分组的ES查询具有以下优势:

  1. 数据聚合:可以对具有相同父文档或嵌套文档的子文档进行聚合操作,例如计算平均值、求和、最大值、最小值等。
  2. 子文档检索:可以根据指定的parent_id字段获取与父文档相关的子文档,从而实现更精确的数据检索。
  3. 数据关联:通过父子关系或嵌套关系,可以将相关的文档组织在一起,方便进行数据关联和查询。

应用场景: 按parent_id分组的ES查询在以下场景中得到广泛应用:

  1. 社交网络:用于检索和聚合用户的关注列表、好友列表等相关数据。
  2. 商品分类:用于按照商品分类对商品进行分组和聚合,例如计算每个分类下的商品数量、销售额等。
  3. 日志分析:用于按照日志的父子关系或嵌套关系对日志进行分组和聚合,例如计算每个父文档下的日志数量、错误率等。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云提供了一系列与Elasticsearch相关的产品和服务,可以用于支持按parent_id分组的ES查询,例如:

  1. 云原生数据库 TDSQL-C:TDSQL-C是腾讯云提供的一种高性能、高可用的云原生数据库,支持Elasticsearch的分布式存储和查询功能。了解更多信息,请访问:TDSQL-C产品介绍
  2. 云搜索服务 CTS:CTS是腾讯云提供的一种全文搜索服务,支持按parent_id分组的ES查询和聚合操作。了解更多信息,请访问:CTS产品介绍
  3. 云数据库 CDB:CDB是腾讯云提供的一种高性能、可扩展的云数据库,支持存储和查询大规模的数据。通过在CDB中使用Elasticsearch插件,可以实现按parent_id分组的ES查询。了解更多信息,请访问:CDB产品介绍

请注意,以上推荐的产品和服务仅为示例,您可以根据实际需求选择适合的腾讯云产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

laravel天、小时,查询数据实例

使用laravel做后台数据统计时候,需要查询每天注册量之类数据 这时候如果直接用created_at分组,是不好用。 1、所以本文解决这个查询应该怎么写。...分组数据: Event::where('created_at',' ',Carbon::parse($request- start_date)) - where('created_at','<',Carbon...groupBy('date') - get([DB::raw('DATE(created_at) as date'),DB::raw('COUNT(*) as value')]) - toArray(); 如果想小时分组所有查询出来数据...2017-09-25"), moment().subtract(-1, 'days')] } }, cb); cb(start, end); }); 超级好用,结合echart 在用echartmap...以上这篇laravel天、小时,查询数据实例就是小编分享给大家全部内容了,希望能给大家一个参考。

2.9K31
  • ES查询

    一、查询语句形式 1.叶子语句 2.复合语句(一条复合语句可以是多条叶子语句和多个复合语句组成) 二、查询和过滤区别 1.过滤是将查询设置为是否匹配(只有是和否两种情况),查询会缓存 2.查询是判断文档是否匹配同时判断文档匹配程度...(_score字段),查询不缓存 三、查询 1.match_all查询简单匹配所有文档 { “match_all”: {}} 2.match匹配指定字段(可能是精确查询也可能是全文查询)...” ],        “query”: “build too” } 4.range查询找出落在指定区间内数字或者时间 {     “range”: {         “age”: {...Query is removed in ES 5.0....        “filter”: {           “match”: {“age”:26}         }     }   } } b)使用constant_score可以取代只有filterbool

    4.6K102

    oracle基础|oracle分组用法|oracle分组查询|group by使用

    目录 分组查询 概念 语法以及执行顺序 组函数 group by 子句 练习 having用法 练习 ---- 分组查询 概念 所谓组查询即将数据按照某列或者某些列相同值进行分组,然后对该组数据进行组函数运用...,先from,再where限制每一条记录返回,返回结果进行分组,应用组函数,再用having限制组函数返回结果,接下来是select抽取要显示列,最后排序 group by col_name:即将数据按照...5.当group by子句中出现多列时候,表示按照从左至右顺序进行分组,即先按照第一列分组, 然后再第一列分好组里面 按照第二列进行分组,以此类推。...目标查询: 平均工资 from : s_emp 条件 : 各部门 ,职称相同。...练习 1.查看职称不以VP开头所有员工, 2.并且将他们以职称分组, 3.求各职称工资总和, 4.将工资综合>5000职称和工资总合显示出来。

    5.7K20

    Oracle中分组查询与DML

    1、Group by 进行分组查询, group by 子句可以将数据分为若干个组 1.1 分组查询 注意: 出现在 SELECT 子句中字段,如果不是包含在多行函数中,那么该字段必须同时在...1.2 带 where 分组查询 注意: group by 子句要写到 where 子句后面 a) 查询每个部门的人数和平均工资, 排除 10 部门 select deptno, count(...*), avg(sal) from emp where deptno10 group by deptno order by deptno; 1.3 带 having 分组查询 注意: where...子句中不允许使用分组函数, 分组函数用于分组前过滤 having 用于过滤分组条件 a) 查询每个部门总工资和平均工资, 排除平均工资低于 1600 部门 select deptno...分组查询时相关关键词顺序: from–>where–>group by–>select–>having–>order by a) 在 emp 表中,列出工资最小值小于 2000 职位 select

    1.2K20

    ESDSL语言高级查询

    2.无查询条件 无查询条件是查询所有,默认是查询所有的,或者使用match_all表示所有 GET /es_db/_doc/_search { "query":{ "match_all":{} } }...3.2 组合条件查询(多条件查询) 组合条件查询是将叶子条件查询语句进行组合而形成一个完整查询条件 bool : 各条件之间有and,or或not关系 must : 各个条件都必须满足,即各条件是...ES中索引数据都会存储一个_score分值,分值越高就代表越匹配。另外关于某个搜索分值计算还是很复杂,因此也需要一定时间。...过滤上下文 是在使用filter参数时候执行环境,比如在bool查询中使用must_not或者filter 另外,经常使用过滤器,ES会自动缓存过滤器内容,这对于查询来说,会提高很多性能。...where name = 'admin' 根据备注信息模糊查询 match, match会根据该字段分词器,进行分词查询 举例: POST /es_db/_doc/_search { "from

    2.2K10

    ES常用查询与聚合

    0 说明 基于es 5.4和es 5.6,列举是个人工作中经常用到查询(只是工作中使用是Java API),如果需要看完整,可以参考官方相关文档 https://www.elastic.co/guide...Note2:对于数组字段,也是可以做桶聚合,做桶聚合时候,其每一个值都会作为一个值去进行分组,而不是整个数组进行分组,可以使用上面的进行测试,不过需要注意是,其字段类型不能为text,否则聚合会失败...1.7 滚动查询scroll 如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批查,直到所有数据都查询完处理完(es返回scrollId,可以理解为是es...进行此次查询操作句柄标识,每发送一次该scrollId,es都会操作一次,或者说循环一次,直到时间窗口到期)。...Terms 相当于分组查询,根据字段做聚合。

    6.4K30

    ESDSL语言高级查询

    2.无查询条件 无查询条件是查询所有,默认是查询所有的,或者使用match_all表示所有 GET /es_db/_doc/_search { "query":{ "match_all":{} } }...3.2 组合条件查询(多条件查询) 组合条件查询是将叶子条件查询语句进行组合而形成一个完整查询条件 bool : 各条件之间有and,or或not关系 must : 各个条件都必须满足,即各条件是...ES中索引数据都会存储一个_score分值,分值越高就代表越匹配。另外关于某个搜索分值计算还是很复杂,因此也需要一定时间。...过滤上下文 是在使用filter参数时候执行环境,比如在bool查询中使用must_not或者filter 另外,经常使用过滤器,ES会自动缓存过滤器内容,这对于查询来说,会提高很多性能。...where name = 'admin' 根据备注信息模糊查询 match, match会根据该字段分词器,进行分词查询 举例: POST /es_db/_doc/_search { "from

    2.8K20

    一个分组查询引发思考

    一个分组查询引发思考 我们在看项目代码或者SQL语句时, 往往会看到很多非常复杂业务或者SQL 那么问题来了. 复杂SQL是如何写成?...where 时间(后续根据要求可改为年月日查询) between 起始时间 and 结束时间 group by 业务名称 -- eg select businame, round(sum(waitingTime...分组统计各项业务 下面产品经理又给你说, 那你搞个年月日进行统计吧, 这样用户可以按照年月日进行统计各种信息 -- 通过时间分组(年月日)并根据分组显示每天时长 -- 逻辑 select 各项业务...from 表名 where 时间(后续根据要求可改为年月日查询) between 起始时间 and 结束时间 group by 时间 -- eg: 分组查询 select DATE_FORMAT...BETWEEN '2021-01-01 00:00:00' AND '2021-12-31 23:59:59' group by DATE_FORMAT(takeTime,'%Y-%m') -- eg: 分组查询

    1K20

    ES 基于查询结果聚合

    在了解本文内容前,必须先了解ES DSL查询ES 聚合查询,ES基于查询结果聚合分为两种,第一种类似与关系型数据库中Having语法,第二种类似于关系型数据库中先where在group by语法...,本文主要分析先查询后聚合场景 演示数据从ES 聚合查询获取 1、先查询后聚合 现在需要统计价格在50到500价格范围区间所有食物,并按照标签进行聚合查询,代码如下: GET food/_search...{ "key" : "水果", "doc_count" : 2 } ] } } } hits中是按照query查询结果集...,下面是根据query结果集进行聚合查询. 2、先聚合后查询(注意这里不是having语法,而是查询聚合里面的详情) 通过post_filter实现 现在需要查询价格范围在50到500之间,按照标签分组之后...,嵌套查询 现在需要统计指定范围内食品平均值、最大值等等,最后需要带上一个所有食品平均值.这个时候计算所有食品平均值不能受限于查询条件,实现方式如下: GET food/_search { "

    1.4K30

    Laravel 实现Eloquent模型分组查询并返回每个分组数量 groupBy()

    Laravel 5.5 Linux mint 18 PHPStorm 最近刚玩Laravel,手册源码还没来得及看完就跃跃欲试做了个小项目,其中有个需求是分组查询数据库中一个字段并返回每个分组数量...,还是去翻手册(手册确实够简单): groupBy 和 having 方法可用来对查询结果进行分组。...这时可使用 select 方法自定义一个 select 子句来查询指定字段: $users = DB::table('users')- select('name', 'email as user_email...这些表达式将会被当作字符串注入到查询中,所以要小心避免造成 SQL 注入攻击!...参考: Laravel Eloquent groupBy() AND also return count of each group 以上这篇Laravel 实现Eloquent模型分组查询并返回每个分组数量

    4.3K51

    ES查询和聚合基础使用

    查询刚才插入文档 二、学习准备:批量索引文档 ES 还提供了批量操作,比如这里我们可以使用批量操作来插入一些数据,供我们在后面学习使用。...max_score – 找到最相关文档分数 hits.total.value - 找到了多少个匹配文档 hits.sort - 文档排序位置(不相关性得分排序时) hits...."match": { "address": "mill lane" } } } 结果 (由于ES底层是按照分词索引,所以上述查询结果是address 字段中包含 mill 或者 lane数据)...doc_count表示bucket中每个州数据条数。 嵌套聚合 ES还可以处理个聚合条件嵌套。 比如承接上个例子, 计算每个州平均结余。...涉及到就是在对state分组基础上,嵌套计算avg(balance): GET /bank/_search { "size": 0, "aggs": { "group_by_state

    15310

    SAP MM 采购订单查询付款信息报表?

    SAP MM 采购订单查询付款信息报表? 上午给P3项目采购部门用户做了一个采购相关报表培训。...培训过程中,客户采购部门经理提出了一个问题:有没有报表能查询到各个采购订单付款情况,显示采购订单号,已付多少,未付多少,未付金额系统建议付款期又是哪一天等等。...所以对于用户这个问题,笔者当即答复客户说,容我回去查查然后给答复。 笔者了解到FI模块有个报表FBL1N,可以查询open或者cleared应付款。...在客户Quality系统上,按照一定查询条件得到了如下结果: 笔者惊喜发现,通过调整报表布局,可以调出“采购订单号码“字段,显示在报表里。...结合查询资料结果,以及咨询了若干资深FICO顾问,笔者认为:SAP系统里不存在满足业务这个要求报表。 2018-09-12 写于杭州市.

    1.2K31

    Es因scroll查询引起gc问题

    问题: 某日下午正开心逛着超市,突然收到线上es机器fgc电话告警,随之而来是一波es reject execution,该es机器所处集群出现流量抖动。...起因1: 先说结论:scroll 查询相对普通查询占用内存开销大很多,考虑到遍历数据场景,安全量是控制在 10qps 左右。...跟踪query流程,发现bool子句中不论是must还是filter,最终被rewrite之后没有本质上区别,判断是否可以进入filter cache条件是: 段内最大文档数是否在阈值范围内(Es...作为key容器,用来累积查询次数,而keyhash计算,普通query是根据查询条件和值来作为hash输入,而script查询是使用当前实例引用,这样就能避免查询被累积(因为每次hashcode...都不一样) 命中数大:通过粗细粒度划分可以降低成本 额外补充:这里是根据Es5.1.2版本得到结论,最新版本中script查询hash计算方式也改为根据脚本内容和参数来进行了 全文完。

    2.3K30
    领券