Elasticsearch-桶聚合查询详解
Elasticsearch 桶聚合(Bucket Aggregation)允许我们创建用于分组文档的桶。以下是一些常见的桶聚合以及它们的使用示例:
terms
聚合:按照指定的字段的值来分桶。
GET /_search
{
"size": 0,
"aggs": {
"colors": {
"terms": {
"field": "color",
"size": 10
}
}
}
}
range
聚合:按照值的范围来分桶。
GET /_search
{
"size": 0,
"aggs": {
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{ "to": 10 },
{ "from": 10, "to": 100 },
{ "from": 100 }
]
}
}
}
}
date_range
聚合:按照日期范围来分桶。
GET /_search
{
"size": 0,
"aggs": {
"date_ranges": {
"date_range": {
"field": "timestamp",
"format": "yyyy-MM-dd",
"ranges": [
{ "to": "2015-01-01" },
{ "from": "2015-01-01", "to": "2016-01-01" },
{ "from": "2016-01-01" }
]
}
}
}
}
histogram
聚合:按照指定的间隔来分桶。
GET /_search
{
"size": 0,
"aggs": {
"price_histogram": {
"histogram": {
"field": "price",
"interval": 50
}
}
}
}
date_histogram
聚合:按照指定的时间间隔来分桶。
GET /_search
{
"size": 0,
"aggs": {
"date_histogram": {
"date_histogram": {
"field": "timestamp",
"interval": "month"
}
}
}
}
以上示例展示了如何使用 Elasticsearch 的桶聚合查询。开发者可以根据实际需求选择合适的桶聚合类型并进行查询。
评论已关闭