聚合查询
Elasticsearch 有一个功能叫聚合(aggregations),允许我们基于数据生成一些精细的分析结果。聚合与 SQL 中的 GROUP BY 类似但更强大。
基本语法
GET /index/_search
GET /megacorp/_search
{
"aggs": {
"NAME": {
"AGG_TYPE": {}
}
}
}sum
求员工的年龄综合
GET /megacorp/_search
{
"aggs": {
"employee age sum": {
"sum": {
"field": "age"
}
}
}
}min 、max、avg sum 这几个的用法几乎一直
terms
举个例子,挖掘出员工中最受欢迎的兴趣爱好:
结果如下:
filter
top_hits
geo_distance
这里的聚合类型还很多,大家可以慢慢的发掘
组合示例
每个查询可以进行多个聚合条件进行约束,如:我们要查询员工里最受欢迎的爱好,已经这里最大的年龄?
Last updated
Was this helpful?