在Elasticsearch中,聚合是一种对文档进行分组和计算的方式。聚合可用于生成汇总数据、计算平均值、最大值、最小值等统计信息。
聚合操作
Elasticsearch支持各种聚合操作,例如桶聚合、度量聚合、管道聚合等。这些聚合操作可以通过Elasticsearch的REST API来执行。以下是聚合操作的一些示例:
桶聚合
桶聚合是将文档分组的一种方式。可以根据某个字段的值将文档分成不同的桶,然后在每个桶上执行度量聚合。以下是一个按照国家/地区字段进行桶聚合的示例:
代码语言:javascript复制POST /sales/_search
{
"size": 0,
"aggs": {
"sales_by_country": {
"terms": {
"field": "country"
},
"aggs": {
"total_sales": {
"sum": {
"field": "price"
}
}
}
}
}
}
在上面的示例中,我们按照"country"字段进行桶聚合,并在每个桶上计算总销售额。Elasticsearch将返回一个JSON格式的响应,其中包含每个国家/地区的总销售额。
度量聚合
度量聚合用于计算某个字段的汇总信息,例如总和、平均值、最大值、最小值等。以下是一个计算平均价格的度量聚合示例:
代码语言:javascript复制POST /sales/_search
{
"size": 0,
"aggs": {
"average_price": {
"avg": {
"field": "price"
}
}
}
}
在上面的示例中,我们计算了"price"字段的平均值。Elasticsearch将返回一个JSON格式的响应,其中包含了"price"字段的平均值。