如何使用Group By形成弹性搜索请求以返回记录

时间:2016-03-16 12:44:34

标签: elasticsearch

我的要求是我需要通过'resId'形成一个请求,以获取其'arrivalDt'大于当前日期组的所有来宾的计数。数据有resId,Guest Info,arrivalDt。将有多个记录具有相同的resrvationId(resId),其中包含该预留的个人来宾详细信息。

我已经形成了以下查询,该查询根据reservationId返回计数,但无法添加上述日期条件。

{
"size": 0,
   "aggs": {
    "group_by_reservation": {
      "terms": {
        "field": "resId"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

使用Filter Aggregation添加条件。

{
"size": 0,
"aggregations": {
  "filteredLiveProducts": {
     "filter": {
        "range": {
           "arrivalDt": {
              "from": "now"        // should be a date field
           }
        }
     },
     "aggs": {
        "group_by_reservation": {
           "terms": {
              "field": "resId"
           }
        }
     }
    }
  }
}

希望有所帮助......