我需要搜索最大时间(最近的条目),我想要一个具有最大值的最大条目。 我在聚合上尝试了各种类型的嵌套,使用过滤器等。但它似乎没有成功。有什么帮助吗?
示例: -
映射 -
{
"trytime": {
"mappings": {
"value": {
"properties": {
"time": {
"type": "long"
},
"value": {
"type": "long"
}
}
}
}
}
}
值: -
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 1,
"hits": [
{
"_index": "trytime",
"_type": "value",
"_id": "2",
"_score": 1,
"_source": {
"time": 9,
"value": 5
}
},
{
"_index": "trytime",
"_type": "value",
"_id": "4",
"_score": 1,
"_source": {
"time": 6,
"value": 10
}
},
{
"_index": "trytime",
"_type": "value",
"_id": "1",
"_score": 1,
"_source": {
"time": 9,
"value": 6
}
},
{
"_index": "trytime",
"_type": "value",
"_id": "3",
"_score": 1,
"_source": {
"time": 9,
"value": 9
}
}
]
}
}
我需要与此时间相对应的最大时间和最大值(将有多个值对应于特定时间)。
查询: -
GET /trytime/_search
{
"size": 0,
"aggs":{
"max_Value": {
"max": {
"field": "value"
}
}
},
"query": {
"bool": {
"must": [
{
"range": {
"time": {
"gte": ___NEED-MAX-TIME-VALUE-HERE___
}
}
}
]
}
}
}
答案 0 :(得分:1)
如果我正确理解了您的问题,这个嵌套聚合应该为您提供3次最新时间,并且每次获得最大值。如果只需要一个结果,请将大小设置为1。
_TABLE_SUFFIX
我不确定这是否也可以通过日期直方图聚合来实现。