2017-09-13 4 views
1

주어진 시간 범위 (예 : 15:00 - 16:00)의 평균 항목 수를 알아야하는 아래의 쿼리가 있습니다.주어진 시간 범위에 대한 평균 항목 수를 쿼리합니다.

이 쿼리가 제대로 작동하지 않습니다. 시간 범위 (날짜 없음)를 표시하고이 범위 당 평균 항목 수를 찾는 방법은 무엇입니까?

POST /myindex/_search 
{ 
    "size": 0, 
    "query": { 
    "bool": { 
     "filter": [ 
     {"term": {"EventId": "11"}}, 
     {"term": {"EventType": "Type1"}} 
     ] 
    } 
    }, 
    "aggs": { 
    "range": { 
     "date_range": { 
      "field": "Datetime", 
      "ranges": [ 
       { 
        "from": "16:00-1H/H", 
        "to": "16:00/H" 
       } 
      ] 
     } 
    } 
    } 
} 

이동 평균을 사용해야합니까? 방법?

나는 이것을 시도했지만 누군가이 쿼리를 끝내도록 도와 주시면 감사하겠습니다. "value_count" : { "field" : "EventHour"}이 항목 수를 계산하는 올바른 방법인지 여부는 알 수 없습니다. 내가 제대로 내가 솔루션 나 자신을 발견

POST /myindex/_search 
    { 
     "size": 0, 
     "query": { 
     "bool": { 
      "filter": [ 
      {"term": {"EventId": "11"}}, 
      {"term": {"EventType": "Type1"}}, 
{ 
      "script": { 
      "script": "doc.date.date.getHourOfDay() >= min && doc.date.date.getHourOfDay() <= max", 
      "params": { 
       "min": 15, 
       "max": 16 
      } 
      } 
     } 
      ] 
     } 
     }, 
     "aggs": { 
     "hourly_intensity": { 
      "date_histogram": { 
      "field": "Datetime", 
      "interval": "hour" 
      }, 
      "aggs": { 
      "count_of_events": { 
       "value_count" : { "field" : "EventHour"} 
      } 
      } 
     }, 
     "hourly_avg_count": { 
      "avg_bucket": { 
      "buckets_path": "hourly_intensity>count_of_events" 
      } 
     } 
     } 
    } 

답변

0

? :이 쿼리의 시간 범위를 추가 할 수 있습니다 방법 :

POST /myindex/_search 
    { 
     "size": 0, 
     "query": { 
     "bool": { 
      "filter": [ 
      {"term": {"EventId": "11"}}, 
      {"term": {"EventType": "Type1"}}, 
      {"term": {"EventHour": 15}} 
      ] 
     } 
     }, 
     "aggs": { 
     "hourly_intensity": { 
      "date_histogram": { 
      "field": "Datetime", 
      "interval": "hour" 
      }, 
      "aggs": { 
      "count_of_events": { 
       "value_count" : { "field" : "EventHour"} 
      } 
      } 
     }, 
     "avg_num_events_per_hour": { 
      "avg_bucket": { 
      "buckets_path": "hourly_intensity>count_of_events" 
      } 
     } 
     } 
}