ElasticSearch6(三) restful风格 聚合查询-度量聚合

聚合分为三大类:

  • 度量聚合:在一组文档中对某一个数字字段进行计算得出指标值
  • 分组聚合:创建多个分组,每个分组都关联一个关键字和相关文档标准。当聚合执行的时候,所有的分组会根据自身标准评估每一个符合的文档。(分组聚合可以嵌套一个或者多个字聚合)
  • 管道聚合:这一类聚合的数据源是其他聚合的输出,然后进行相关指标的计算。

度量聚合

在一组文档中对某一个数字字段进行计算得出指标值

1.平均值聚合

{
  "size":0,
  "aggs":{
    "avg_grade":{
      "avg":{
      	"field":"grade"
      }
    }
  }
}

size:0 表示只显示聚合结果

1.1 使用脚本

{
  "size":0,
  "aggs":{
    "avg_grade":{
      "avg":{
      	"script":"doc['grade'].value"
      }
    }
  }
}

1.2 文档值脚本

可以对文档中具体某列的值用脚本进行再次计算

{
  "size":0,
  "aggs":{
    "avg_correction_grade":{
      "avg":{
       "field":"grade",
      	"script":{
          "inline":"_value * params.correction",
          "params":{
            "correction": 2
          }
        }
      }
    }
  }
}

1.3 默认值

当某文档缺失值时,会被忽略的,但是可以设置默认值

{
  "size":0,
  "aggs":{
    "avg_correction_grade":{
      "avg":{
       "field":"grade",
      	"missing":0
      }
    }
  }
}

2 基数聚合

{
  "size":0,
  "aggs":{
    "price_count":{
      "cardinality":{
        "field":"price"
      }
    }	
  }
}

相当于 聚合价格不同 总数

3. 最大、最小、和、计数聚合

{
  "size":0,
  "aggs":{
    "price_max":{
      "max":{
        "field":"price"
      }
    },
    "price_min":{
      "min":{
        "field":"price"
      }
    },
    "price_sum":{
      "sum":{
        "field":"price"
      }
    },
    "price_count":{
      "value_count":{
        "field":"price"
      }
    }
  }
}

 

4. 统计聚合

统计聚合:包含最小、最大、和、平均值、基数

{
  "size":0,
  "aggs":{
    "stats_grade":{
      "stats":{
       "field":"grade"
      }
    }
  }
}

5. 百分比聚合

通常用于极端值查询

{
  "size":0,
  "aggs":{
    "loadTime_percentiles":{
      "percentiles":{
        "field":"loadTime"
      }
    }
  }
}

获取加载时间比例值

6. 百分比分级聚合

数据由网站加载时间组成,规定95%的页面在15ms内完成加载,99%的页面在20ms内完成加载

{
  "size":0,
  "aggs":{
    "loadTime_outlier":{
      "percentile_ranks":{
        "field":"loadTime",
        "values":[15,30]
      }
    }
  }
}

返回:看出15毫秒时大概92%页面加载完毕。30毫秒时基本都加载完成。 

"aggregations": {
      "load_time_outlier": {
         "values" : {
            "15": 92,
            "30": 100
         }
      }
   }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值