我有一個包含數千個以下型別檔案的索引:
{
"user_id" : 1234,
"acc_id" : 4321,
"type_of_event" : "event",
"event_label" : "example activity",
"time_stamp" : 1582720371,
"event_info" : "example info",
"time_stamp_string" : "2022-02-26 12:32:51"
}
我想要一個回傳time_stamp_string每個user_id. 我嘗試的是:
GET my_index/_search
{
"aggs": {
"top_id": {
"max": {
"field": "user_id"
}
}
}
}
失敗了,回傳比最新條目更舊的條目。我不明白為什么這行不通。
uj5u.com熱心網友回復:
它不會做你想做的事,因為無論如何你都沒有考慮時間戳,你只是要求 Elasticsearch 向你顯示最大值user_id
最好的方法是使用top hits agg和術語 agg,像這樣;
POST /my_index/_search
{
"aggs": {
"user_id": {
"terms": {
"field": "user_id"
},
"aggs": {
"latest_time_stamp": {
"top_hits": {
"sort": [
{
"time_stamp": {
"order": "desc"
}
}
],
"size": 1
}
}
}
}
}
}
這樣做是識別每個唯一的user_id,然后time_stamp為其中的每一個找到最新的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526564.html
標籤:弹性搜索木花
