2017-12-04 13 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)도

예 min 값 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