elasticsearch 聚合 api
时间: 2023-11-18 12:12:46 浏览: 35
Elasticsearch 的聚合(Aggregation)API 可以用于对数据进行分组、统计和计算。通过聚合,你可以从数据中获取有关其特征和关系的有用信息。以下是一个示例聚合 API 的请求体:
```json
GET /index/_search
{
"size": 0,
"aggs": {
"group_by_field": {
"terms": {
"field": "field_name.keyword",
"size": 10
},
"aggs": {
"stats_field": {
"stats": {
"field": "numeric_field"
}
}
}
}
}
}
```
在这个示例中,我们使用了一个聚合(Aggregation)查询。首先,我们指定了索引名(index)和搜索操作(search)。然后,我们设置了 `size` 参数为 `0`,这表示我们只关心聚合的结果而不需要返回匹配的文档。
接下来,我们定义了一个聚合块(aggs),名为 `group_by_field`,其中使用 `terms` 聚合将 `field_name.keyword` 字段进行分组。我们还设置了 `size` 参数为 `10`,表示最多返回 10 个分组。
在 `group_by_field` 聚合中,我们还定义了一个子聚合(aggs),名为 `stats_field`。我们使用 `stats` 聚合计算 `numeric_field` 字段的统计信息,如最小值、最大值、平均值等。
通过执行这个聚合查询,你将会获得基于 `field_name.keyword` 字段进行分组的结果,并且在每个分组中还包括了 `numeric_field` 字段的统计信息。
请注意,上述示例只是聚合 API 的一个简单示例,实际使用中你可以根据需求组合不同的聚合类型和参数来完成更复杂的分析任务。