2016-04-07 11 views
0

私はForexティックデータのインデックスを持っています。私は開始日と終了日の間に入札単価を得るためにクエリを作成したいと思います特定の "解決策"。私が解決で意味することは、毎分または毎分の1値、中央値または平均を求めたいということです。x分/時間/日ごとの中央値/平均値を取得するための弾性検索クエリ

私は、統計集計と一緒に日付ヒストグラム集計を使用する必要があると推測していますが、それはどうですか?私は現在働いている

サンプル正しくないクエリは次のとおりです。

{ 
     "fields": ["ask_price", "bid_price", "tick_date"], 
     "query": { 
      "match": { 
       "currency_pair": currencyPair 
      } 
     }, 
     "filter": { 
      "range": { 
       "gte": startDate, 
       "lte": endDate, 
       "format": "yyyy-MM-dd" 
      } 
     }, 
     "aggs": { 
      "resolution": { 
       "date_histogram": { 
        "field": "tick_date", 
        "interval": "1m" 
       } 
      } 
     } 
} 

答えて

0

私はRichaの応答@を考慮に入れて私の答えを描きます。 Subaggregationを使用する必要があります。したがって、最終的な正しいクエリは次のようになります。

{ 
     "query": { 
      "match": { 
       "currency_pair": currencyPair 
      } 
     }, 
     "filter": { 
      "range": { 
       "tick_date": { 
        "gte": startDate, 
        "lte": endDate, 
        "format": "yyyy-MM-dd" 
       } 
      } 
     }, 
     "aggs": { 
      "resolution": { 
       "date_histogram": { 
        "field": "tick_date", 
        "interval": "15m" 
       }, 
       "aggs": { 
        "avg_bid": { 
         "avg": { 
          "field": "bid_price" 
         } 
        }, 
        "avg_ask": { 
         "avg": { 
          "field": "ask_price" 
         } 
        }, 
        "median_bid": { 
         "percentiles": { 
          "field": "bid_price", 
          "percents": [50] 
         } 
        }, 
        "median_ask": { 
         "percentiles": { 
          "field": "bid_ask", 
          "percents": [50] 
         } 
        } 
       } 
      } 
     } 
1

使用subAggregation次のように:

{ 
    "fields": ["ask_price", "bid_price", "tick_date"], 
    "query": { 
     "match": { 
      "currency_pair": currencyPair 
     } 
    }, 
    "filter": { 
     "range": { 
      "gte": startDate, 
      "lte": endDate, 
      "format": "yyyy-MM-dd" 
     } 
    }, 
    "aggs": { 
     "resolution": { 
      "date_histogram": { 
       "field": "tick_date", 
       "interval": "1m" 
      }, 

      "aggs": { 
      "statistics": { 
      "stats": { 
       "field": "field_name_whose_stats_are_to_be_found" 
       } 
       } 
      } 
      } 
     } 
    } 
関連する問題