根据首次出现的日期对术语聚合结果进行排序

时间:2015-11-27 06:28:12

标签: elasticsearch

假设事件发生类似于以下

  • eventA -10 AM
  • eventB -11 AM
  • eventA -12 AM

我需要aggregation order来像

  1. eventA(事件A首先显示,因为它首先出现)
  2. eventB
  3. 有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您可以查看ordering terms aggregation

event_date

中需要sub-aggregation terms aggregation
{
  "size": 0,
  "aggs": {
    "event_name": {
      "terms": {
        "field": "event_name",
        "size": 10,
        "order": {
          "first_arrive": "asc"
        }
      },
      "aggs": {
        "first_event_occur": {
          "min": {
            "field": "event_date"
          }
        }
      }
    }
  }
}