histogram:类似于terms,也是进行bucket分组操作,接收一个field,按照这个field的值的各个范围区间,进行bucket分组操作

    1. "histogram":{
    2. "field": "price",
    3. "interval": 2000
    4. },

    interval(区间):2000,划分范围,04000,40008000,8000~10000,buckets
    去根据price的值,比如2500,看落在哪个区间内,比如20004000对应的那个bucket中
    bucket划分的方法,terms,将field值相同的数据划分到一个bucket中
    bucket有了之后,一样的,去对每个bucket执行avg,count,sum,max,min,等各种metric操作,聚合分析

    GET /tvs/_search
    {
       "size" : 0,
       "aggs":{
          "price":{
             "histogram":{ 
                "field": "price",
                "interval": 2000
             },
             "aggs":{
                "revenue": {
                   "sum": { 
                     "field" : "price"
                   }
                 }
             }
          }
       }
    }
    
    {
      "took": 13,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "failed": 0
      },
      "hits": {
        "total": 8,
        "max_score": 0,
        "hits": []
      },
      "aggregations": {
        "group_by_price": {
          "buckets": [
            {
              "key": 0,
              "doc_count": 3,
              "sum_price": {
                "value": 3700
              }
            },
            {
              "key": 2000,
              "doc_count": 4,
              "sum_price": {
                "value": 9500
              }
            },
            {
              "key": 4000,
              "doc_count": 0,
              "sum_price": {
                "value": 0
              }
            },
            {
              "key": 6000,
              "doc_count: {
                "value":": 0,
              "sum_price" 0
              }
            },
            {
              "key": 8000,
              "doc_count": 1,
              "sum_price": {
                "value": 8000
              }
            }
          ]
        }
      }
    }