具有 Max 或 Min 等聚合的弹性搜索过滤器
Elastic Search filter with aggregate like Max or Min
我有带有 scheduleId 的简单文档。我想获取最新 ScheduleId 的文档数。假设 Max ScheduleId 是最新的,我们将如何编写该查询。我已经搜索和阅读了几个小时,并且可以让它工作。
{
"aggs": {
"max_schedule": {
"max": {
"field": "ScheduleId"
}
}
}
}
这让我获得了 Max ScheduleId 和该聚合之外的文档总数。
如果有人能帮助我了解如何获取此聚合值并将其用作过滤器(如 SQL 中的子查询!),我将不胜感激。
应该这样做:
{
"aggs": {
"max_ScheduleId": {
"terms": {
"field": "ScheduleId",
"order" : { "_term" : "desc" },
"size": 1
}
}
}
}
terms aggregation 将为您提供每个术语的文档计数,它适用于整数。您只需要按术语而不是计数(默认)对结果进行排序。由于您只想要最高的 ScheduleID
,"size":1
就足够了。
这是我用来测试它的代码:
http://sense.qbox.io/gist/93fb979393754b8bd9b19cb903a64027cba40ece
我有带有 scheduleId 的简单文档。我想获取最新 ScheduleId 的文档数。假设 Max ScheduleId 是最新的,我们将如何编写该查询。我已经搜索和阅读了几个小时,并且可以让它工作。
{
"aggs": {
"max_schedule": {
"max": {
"field": "ScheduleId"
}
}
}
}
这让我获得了 Max ScheduleId 和该聚合之外的文档总数。
如果有人能帮助我了解如何获取此聚合值并将其用作过滤器(如 SQL 中的子查询!),我将不胜感激。
应该这样做:
{
"aggs": {
"max_ScheduleId": {
"terms": {
"field": "ScheduleId",
"order" : { "_term" : "desc" },
"size": 1
}
}
}
}
terms aggregation 将为您提供每个术语的文档计数,它适用于整数。您只需要按术语而不是计数(默认)对结果进行排序。由于您只想要最高的 ScheduleID
,"size":1
就足够了。
这是我用来测试它的代码:
http://sense.qbox.io/gist/93fb979393754b8bd9b19cb903a64027cba40ece