Elasticsearch - 聚合查询
group by
# 使用数据
PUT /book/_doc/2
{
"name": "java编程思想",
"desc": "我们通常只需一天来审核你的信息。如果我们发现你的帐户确实未违反我们的社群守则,你便可以再为次使用Facebook官网。",
"price": 10.91,
"timestamp": "2024-01-02 1:55:12",
"pic": "021.png",
"tags": ["spring", "php"]
}
sql方式:
select price, count(*) as _count from book group by price
GET /book/_search
{
"query": {
"match_all": {}
},
"aggs": { # 相当于group by
"as_group_by": { # 查询结果的别名
"terms": {
"field": "price"
}
}
}
}

- 查询出的聚合数据在aggregations下
- 查询出的数据包含index的原始数据 不是想要的只返回price,_count信息,可以通过size:0来解决
GET /book/_search
{
"query": {
"match_all": {}
},
"size": 0,
"aggs": {
"as_group_by": {
"terms": {
"field": "price"
}
}
}
}
