2015-01-22 5 views
0

Elasticsearch에는 타임 스탬프가있는 문서와 웹 서비스에 대해 관찰 된 요청 수가 포함 된 색인이 있습니다.탄성 검색 : 집계 버킷에서 필터 또는 값 얻기

매일 최대 요청 수가 관찰 된 시간 (피크 시간)을 얻기 위해 집계를 수행하고 싶습니다. 때문에 능력을 실제로 피크 시간에 해당하는 peak_hour_histogram 버킷 배열의 첫 번째 항목 : 이것은 어떤 의미에서 확인하고있다

{ 
    "aggregations" : { 
     "week_summary" : { 
     "filter" : {"range": {"@timestamp": {"gte": "2015-01-20||-7d","lte": "2015-01-20"}}}, 

     "aggregations" : { 
      "oneday_interval" : { 
       "date_histogram" : {"field" : "@timestamp", "interval" : "1d","order" : { "_key" : "desc" }},        
       "aggregations" : { 
       "peak_hour_histogram" : { 
        "date_histogram" : {"field" : "@timestamp", "interval" : "1h","order" : { "peak_request_count.value" : "desc" }}, 
        "aggregations" : { 
         "peak_request_count" : { 
          "sum" : { "field" : "request_count"} 
         } 
        }  
        } 
       } 
      } 
     } 
     } 
    }, 
    size : 0 
} 

:

나는 다음과 같은 요청을 수행하여 결과를 얻을 성공 하위 집계 값에 대한 날짜 막대 그래프를 정렬합니다.

그럼에도 불구하고 다른 모든 버킷 항목 (즉, 하루 중 23 시간)이 필요하지 않으며 첫 번째 항목 만 받고 싶습니다. 나는 어떤 성공도없이 top_hits로 놀려고했습니다.

이 필터링을 수행하는 방법을 알고 계십니까?

NB : 실제 사용 사례에서 내 집계는 약 3MB의 데이터를 반환합니다. 그래서 쓸모없는 값들을 모두 필터링하는 것이 중요해진다.

답장을 보내 주셔서 감사합니다.

답변