2017-12-04 14 views
0

私は弾性データセット私は弾性集合内の最小値と一緒にタイムスタンプを取得する方法を

"aggs": { 
    "DateRangeFilter": { 
     "filter": { 
     "range": { 
      "@timestamp": { 
      "gte": "2015-10-16T11:13:17.000", 
      "lte": "2015-10-16T12:29:47.000" 
      } 
     } 
     }, 
     "aggs": { 
     "min_chan4": { 
      "min": { 
      "field": "ch_004" 
      } 
     }, 
     "max_chan4": { 
      "max": { 
      "field": "ch_004" 
      } 
} 

でこれを達成タイムスパン 以上の最大値と最小値を取得したい に集計クエリを実行していますし、これは私に与えます:

"DateRangeFilter": { 
    "doc_count": 153, 
    "min_chan4": { 
     "value": 0.7463656663894653 
    }, 
    "max_chan4": { 
     "value": 5.170884132385254 
    } 

これは素晴らしいです。私は必要なもの

は、これらのそれぞれが マイドキュメントを発生時間を取得することもあり、このようになります。

"_source": { 
     "GroupId": "blahblah", 
     "@timestamp": "2015-10-14T12:41:30Z", 
     "ch_004": 1.5608633995056154 
    } 

ので、私だけではない分を取得することができることを期待すると指定された日付範囲の最大値だけでなく、最小値または最大値が記録された時刻(@timestamp)

最小値minXが時刻t1に発生し、最大値maxXが時刻t2に発生しました

答えて

1

Top Hits Aggregationを使用してこれを達成できます。例は見つけることができるhere

{ 
    "aggs": { 
    "DateRangeFilter": { 
     "filter": { 
     "range": { 
      "@timestamp": { 
      "gte": "2015-10-16T11:13:17.000", 
      "lte": "2015-10-16T12:29:47.000" 
      } 
     } 
     }, 
     "aggs": { 
     "ch_004_min": { 
      "top_hits": { 
      "size": 1, 
      "sort": [ 
       { 
       "timestamp": { 
        "order": "asc" 
       } 
       } 
      ] 
      } 
     }, 
     "ch_004_max": { 
      "top_hits": { 
      "size": 1, 
      "sort": [ 
       { 
       "timestamp": { 
        "order": "desc" 
       } 
       } 
      ] 
      } 
     } 
     } 
    } 
    } 
} 
+0

私はtop_hitsの方に向いてくれてありがとう。小さな変更を加えたとき、私はこれを思いついて、「top_hits」:{ "size":1、 "sort":[ { "ch_004":{ "オーダー ": "DESC" }} ]、 "_source":{ "には、": "ch_004"、 "@timestamp"] }} – riketscience

関連する問題