ES分组聚合Agg nested

本文介绍了如何在Elasticsearch(ES)中使用Agg进行分组聚合,特别是针对nested字段的情况。通过新建索引`live_room`并设置mapping,展示了数据插入和Java代码实现分组聚合统计品牌销额的过程。在调试和性能优化方面,讨论了size参数的影响以及预计算哈希在大数据量聚合查询中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES的分组聚合

类似于select brandId, sum(salesVolume) from live_room group by brandId ;
求每个品牌下的直播间销额有多少

正文开始

新建索引live_room

mapping结构如下
背景:直播间id关联的品牌销售情况,每个直播间都能带很多商品,自然的,每个直播间也能通过商品关联到很多品牌。计算每个品牌的销额销量等数据,就是此直播间这个品牌关联商品的和
注意: 如果需要使用分组完之后的聚合功能,需要把一些list的字段类型设为nested!
新建直播间索引

PUT live_room
PUT live_room/_mapping
{
   
  "properties": {
   
    "roomId": {
   
      "type": "long"
    },
    "roomName": {
   
      "type": "text",
      "fields": {
   
        "keyword": {
   
          "type": "keyword",
          "ignore_above": 256
        }
      }
    },
    "brandDataNested": {
   
      "type": "nested",
      "properties": {
   
        "id": {
   
          "type": "long"
        },
        "liveSales": {
   
          "type": "long"
        },
        "name": {
   
          "type": "text",
          "fields": {
   
            "keyword": {
   
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "productNum": {
   
          "type": "long"
        },
        "salesVolume": {
   
          "type": "long"
        },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值