elasticsearch(6)聚合统计-度量聚合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sz85850597/article/details/82858820

平均值聚合

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_avg": {
      "avg": {
        "field": "field1"
      }
    }
  }
}

对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing参数,给缺失统计字段的数据一个默认值进行聚合统计。

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_avg": {
      "stats": {
        "field": "field1",
        "missing": 0
      }
    }
  }
}

基数聚合

统计某字段唯一值得个数,相当于SQL中的SELECT COUNT(DISTINCT field1) FROM xxx

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_cardinality": {
      "cardinality": {
        "field": "field1"
      }
    }
  }
}

对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing参数,给缺失统计字段的数据一个默认值进行聚合统计。

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_cardinality": {
      "cardinality": {
        "field": "field1",
        "missing": "N/A"
      }
    }
  }
}

基数聚合的值并不是一个绝对的准确值,而是一个近似计数。由于es统计到高基数集时需要占用大量的内存,且各个节点之间的沟通也会占用大量的集群资源,因此效率较低。参数precision_threshold允许es为了基数统计的准确性而设置交换内存,实际的基数统计值低于precision_threshold则基数将接近准确,高于该值计数会更模糊,最大值为40000,默认值为3000。

最大值聚合

GET /index/type/_search
{
  "size": 0,
  "aggs": {
    "test_max": {
      "max": {
        "field": "field1"
      }
    }
  }
}

最小值聚合

GET /index/type/_search
{
  "size": 0,
  "aggs": {
    "test_min": {
      "min": {
        "field": "field1"
      }
    }
  }
}

和聚合

GET /index/type/_search
{
  "size": 0,
  "aggs": {
    "test_sum": {
      "sum": {
        "field": "field1"
      }
    }
  }
}

值计数聚合

值计数聚合对聚合文档中提取的值进行计数,通常该聚合与其他单值聚合一起使用,例如计算平均聚合时,统计有多少个值参与了平均聚合。

GET /index/type/_search
{
  "size": 0,
  "aggs": {
    "test_avg": {
      "avg": {
        "field": "field1"
      }
    },
    "test_value_count": {
      "value_count": {
        "field": "field1"
      }
    }
  }
}

统计聚合

统计聚合是多个单值聚合的汇总,包含:最小值、最大值、和、计数、平均值。

GET /index/type/_search
{
  "size": 0,
  "aggs": {
    "test_stats": {
      "stats": {
        "field": "field1"
      }
    }
  }
}

百分比聚合

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_percentiles": {
      "percentiles": {
        "field": "field1"
      }
    }
  }
}

默认情况下,百分比指标会计算一系列百分比:1、5、25、50、75、95、99,也可以自定义需要计算的百分比。

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_percentiles": {
      "percentiles": {
        "field": "price",
        "percents": [
          1,
          5,
          25,
          50,
          75,
          95,
          99
        ]
      }
    }
  }
}

百分比分级聚合

计算测试值低于指定值得百分比。

GET /index/type/_search
{
  "size": 0, 
  "aggs": {
    "test_percentile_ranks": {
      "percentile_ranks": {
        "field": "field1",
        "values": [
          10,
          20
        ]
      }
    }
  }
}

猜你喜欢

转载自blog.csdn.net/sz85850597/article/details/82858820
今日推荐