天天看点

es - elasticsearch - aggs - bucket - histogram

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

问:histogram有什么特点?

答:

es - elasticsearch - aggs - bucket - histogram

问:histogram如何使用?

答:

# 删除
DELETE /histogram_test

# 映射
PUT /histogram_test
{
  "mappings": {
    "properties": {
      "num": {"type": "integer"}
    }
  }
}

# 索引
POST /histogram_test/_bulk?routing=1&refresh
{"index": {"_id": 1}}
{"num": 1}
{"index": {"_id": 2}}
{"num": 3}
{"index": {"_id": 3}}
{"num": 5}
{"index": {"_id": 4}}
{"num": 10}
{"index": {"_id": 5}}
{"num": 80}


# 搜索
GET /histogram_test/_search?size=0
{
  "aggs": {
    "num_aggs": {
      "histogram": {
        "field": "num",
        "interval": 5,
        "keyed": true,
        "min_doc_count": 1,
        "order": {
          "_key": "desc"
        },
        "offset": 3
      }
    }
  }
}

# 结果
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 5,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "num_aggs" : {
      "buckets" : {
        "78.0" : {
          "key" : 78.0,
          "doc_count" : 1
        },
        "8.0" : {
          "key" : 8.0,
          "doc_count" : 1
        },
        "3.0" : {
          "key" : 3.0,
          "doc_count" : 2
        },
        "-2.0" : {
          "key" : -2.0,
          "doc_count" : 1
        }
      }
    }
  }
}
           

继续阅读