当前位置:   article > 正文

利用kibana可视化DevTools界面实现ElasticSearch文档数据的聚合查询_kibana 聚合查询

kibana 聚合查询

 聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类:

1、 桶(Bucket)聚合 :用来对文档做分组
TermAggregation :按照文档字段值分组
Date Histogram :按照日期阶梯分组,例如一周为一组,或者一月为一组
2、 度量(Metric)聚合 :用以计算一些值,比如:最大值、最小值、平均值等
Avg:求平均值
Max:求最大值
Min:求最小值
Stats :同时求 max min avg sum
3、管道( pipeline )聚合:其它聚合的结果为基础做聚合

其中,我们以学习桶(Bucket)聚合和度量(Metric)聚合为主。需要注意的是:参与聚合的字段类型必须是:keyword、数值、日期、布尔

示例一(桶Bucket聚合功能):统计所有数据中的酒店品牌有几种,此时可以根据酒店品牌的名称做聚合,并且要限定聚会范围(注意aggs与query同级),价格小于200的酒店,自定义排序,按照每组查询到的总数进行升序排序。(聚合可配置的有:size:指定聚合结果的数量,order:指定聚合结果的排序方式,field:指定聚合字段)

  1. GET /hotel/_search
  2. {
  3. "query": {
  4. "range": {
  5. "price": {
  6. "lte": 200
  7. }
  8. }
  9. },
  10. "size": 0,
  11. "aggs": {
  12. "brandAgg": {
  13. "terms": {
  14. "field": "brand",
  15. "size": 20,
  16. "order": {
  17. "_count": "asc"
  18. }
  19. }
  20. }
  21. }
  22. }

 示例二(度量metric嵌套聚合功能):统计所有数据的酒店品牌有多少种,并且算出每种酒店评分的最小值、最大值、平均值、总值,最后以每个酒店的平均评分作降序排序(里面的aggs就是嵌套了一个聚合,stats就是求上面聚合得到的结果进行求最小值、最大值、平均值、总值,order里的scoreAgg.avg就是设置酒店平均分的排序方式

  1. GET /hotel/_search
  2. {
  3. "size": 0,
  4. "aggs": {
  5. "brandAgg": {
  6. "terms": {
  7. "field": "brand",
  8. "size": 20,
  9. "order": {
  10. "scoreAgg.avg": "desc"
  11. }
  12. },
  13. "aggs": {
  14. "scoreAgg": {
  15. "stats": {
  16. "field": "score"
  17. }
  18. }
  19. }
  20. }
  21. }
  22. }

至此,ElasticSearch的聚合介绍和实例展示就到此结束啦~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/501602
推荐阅读
相关标签
  

闽ICP备14008679号