24.Elasticsearch索引聚合查询—Bucket聚合-2

24.1 前置条件的过滤:filter

24.1.1 对filter进行分组聚合:filters

  • 示例:日志系统中,每条日志都是在文本中,包含warning/info等信息
PUT /test-agg-logs/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "body" : "warning: page could not be rendered" }
{ "index" : { "_id" : 2 } }
{ "body" : "authentication error" }
{ "index" : { "_id" : 3 } }
{ "body" : "warning: connection timed out" }
{ "index" : { "_id" : 4 } }
{ "body" : "info: hello pdai" }
  • 需要对包含不同日志类型的日志进行分组,这就需要filters:
GET /test-agg-logs/_search
{
  "size": 0,
  "aggs" : {
    "messages" : {
      "filters" : {
        "other_bucket_key": "other_messages",
        "filters" : {
          "infos" : { "match" : { "body" : "info" }},
          "warnings" : { "match" : { "body" : "warning" }}
        }
      }
    }
  }
}

24.2 对number类型聚合:Range

  • 基于多桶值源的聚合,使用户能够定义一组范围-每个范围代表一个桶
    • 在聚合过程中,将从每个存储区范围中检查从每个文档中提取的值,并“存储”相关/匹配的文档
GET /test-agg-cars/_search
{
  "size": 0,
  "aggs": {
    "price_ranges": {
      "range": {
        "field": "price",
        "ranges": [
          { "to": 20000 },
          { "from": 20000, "to": 40000 },
          { "from": 40000 }
        ]
      }
    }
  }
}

24.3 对IP类型聚合:IP Range

  • 专用于IP值的范围聚合
  • 返回:

24.4 对日期类型聚合:Date Range

  • 专用于日期值的范围聚合

24.5 对柱状图功能:Histrogram

  • 创建直方图需要指定一个区间,如果要为售价创建一个直方图,可以将间隔设为20,000
    • 这样做将会在每个 $20,000 档创建一个新桶,然后文档会被分到对应的桶中
  • 对于仪表盘来说,希望知道每个售价区间内汽车的销量
    • 还会想知道每个售价区间内汽车所带来的收入,可以通过对每个区间内已售汽车的售价求和得到
  • 可以用 histogram 和一个嵌套的 sum 度量得到想要的答案:
GET /test-agg-cars/_search
{
  "size" : 0,
  "aggs":{
    "price":{
      "histogram":{ 
        "field": "price.keyword",
        "interval": 20000
      },
      "aggs":{
        "revenue": {
          "sum": { 
            "field" : "price"
          }
        } 
      } 
    } 
  } 
}


大数据视频推荐:
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值