我将类似于以下事件的事件编入索引:
{
"time": "2015-10-01",
"kind": "A"
},
{
"time": "2015-10-02",
"kind": "B"
},
{
"time": "2015-10-15",
"kind": "A"
},
{
"time": "2015-10-16",
"kind": "B"
}
换句话说,这些是几种定时事件(上例中的A
和B
)。保证相同kind
的同一time
不能有两个或多个事件。
我正在寻找一个查询,可以检索每种类型的最新(time
最接近"现在")事件。对于上面的示例,这些将是拉特两个。
到目前为止,我强迫_id
拥有kind
的值,这会自动保留一组唯一的事件(事件会按时间编制索引,因此具有日期的事件保证2015-10-16
在早期2015-10-02
之后的索引之后编入索引。这当然不能保留事件的历史,这是我现在感兴趣的事情。
答案 0 :(得分:1)
这个查询怎么样:
{
"size": 0,
"aggs": {
"unique_kind": {
"terms": {
"field": "kind",
"size": 10
},
"aggs": {
"max_date": {
"max": {
"field": "time"
}
},
"1st": {
"top_hits": {
"size": 1,
"sort": [{"time":"desc"}]
}
}
}
}
}
}