关键字:聚合agg,top_hits
运用场景:要对数据某一项进行分组,但分组之后的数据是满足某一条件的数据,可以是某一字段最大或者最小的那一条数据作为结果。如,我要取员工考勤的打卡记录,根据人进行分组,但这一组数据是最后打卡的所有记录。
示例:
GET /hw-attendance-dev-health-2022-2month/_search
{
"track_total_hits": true,
"aggs": {
"group_by_idcard": {
"aggs": {
"latestRecord": {
"top_hits": {
"size": 1,
"sort": [
{
"insert_time": {
"order": "desc"
}
}
]
}
}
},
"terms": {
"field": "idcardno.keyword",
"size": 10000
}
}
}
}
图片讲解:
后续还可以根据query取查询结果之后的分组聚合结果