在我的彈性索引中,我有 3 個欄位userId, status,updatedAt和其他欄位。現在我試圖讓所有行在哪里userId并且status是不同的。我可以用術語 agression做到這一點。
但是當多行相同userId并且status我想回傳具有最小/最早updatedAt欄位的行時,我還有另一個要求。也就是說,在找到一個不同的行時,它應該按升序排列updatedAt。
我怎樣才能做到這一點?這是我的嘗試
GET user_history/_search
{
"aggs": {
"user": {
"terms": {
"field": "userId"
},
"aggs": {
"status": {
"terms": {
"field": "info.status"
}
}
}
}
}
}
uj5u.com熱心網友回復:
您可以使用top_hits 聚合
{
"aggs": {
"user": {
"terms": {
"field": "userId"
},
"aggs": {
"status": {
"terms": {
"field": "status.keyword"
},
"aggs": {
"top_document": {
"top_hits": {
"size": 1,
"sort": {"updatedAt":"desc"}
}
}
}
}
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513931.html
標籤:弹性搜索聚合函数
