Elasticsearch分组后,根据分组后的数量排序,并查询分组后的组数量,通过DSL和java API两种方式
解决方案:
示例:在单据表中,查询2022-01-19当天每个人提交的单据数量,从高到低排序,并查询提交过单据的总人数。
期望实现的SQL
select Id,count(Id) as c from userbill where type='bill' and createTime >='2022-01-19'
and createTime <= '2022-01-19' group by createUser order by c desc
1、DSL方式 :
GET /userbill/_search
{
"from": 0,
"size": 0,
"query": {
"bool": {
"filter": [
{
"bool": {
"must": [
{
"term": {
"type": {
"value": "bill",
"boost": 1
}
}
},
{
"range": {
"createTime": {
"from": "2022-01-19",
"to": "2022-01-19",
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
]
}
},
"_source": false,
"stored_fields": "_none_",
"aggs":