2017-09-05 13 views
1

私はプログラミングに慣れていないため、elasticsearchに格納されたデータから1ヶ月間の使用電力の合計を取得したいと考えています。 scalaでJava APIを使用するのは難しいです。これは私がscalaでJava APIを使用してelasticsearch集計を作成する方法

POST /myIndext/myType/_search?search_type=dfs_query_then_fetch 
{ 
"aggs": { 
"duration": { 
"date_histogram": { 
"field": "Day", 
"interval": "month", 
"format": "yyyy-MM-dd"}, 
"aggs": { 
"Power_total": { 
"sum": { 
"field": "myField" 
} 
} 
} 
} 
} 
} 

結果が

("aggregations": { 
     "duration": { 
     "buckets": [ 
      { 
       "key_as_string": "2017-01-01", 
       "key": 1480550400000, 
       "doc_count": 619, 
       "myField": { 
        "value": 5218.066633789334 
       } 
      } 

は次に、この

val matchquery = QueryBuilders.matchQuery("ID", configurate) 

    val queryK = QueryBuilders.matchQuery("ID", configurate) 

    val filterA = QueryBuilders.rangeQuery("Day").gte("2017-01-02T00:00:05.383+0100").lte("2017-01-13T00:00:05.383+0100") 
    val query = QueryBuilders.filteredQuery(queryK, filteAr) 
    val agg = AggregationBuilders.dateHistogram("duration") 
     .field("Day") 
     .interval(DateHistogramInterval.MONTH) 
     .minDocCount(0) 
     .extendedBounds(new DateTime("2017-01-01T00:00:05.383+0100"), new DateTime("2017-01-13T00:00:05.383+0100")) 
      .subAggregation(AggregationBuilders.sum("power_total").field("myField")) 

    val result: SearchResponse = client 
     .prepareSearch("myIndex") 
     .setTypes("myType") 
     .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) 
     .setQuery(query) 
     .addAggregation(agg) 
     .addSort("Day", SortOrder.DESC) 
     .setSize(815) 
     .addField("myField") 
     .execute() 
     .actionGet() 

    val results = result.getHits.getHits 
     println("Current results: " + results.length) 
     for (hit <- results) { 
      println("------------------------------") 
      val response = hit.getSource 
      println(response) 
     } 
    client.close() 

結果が

current result = 0 

なっていない午前、なぜ私に知らせてくださいScalaのコードWASれるWASやったことあります私がseを使っているように "myField"の値nse。
私はそれを個別にやってみましたが、同じエラーが発生しました。質問応答を正しい方法で解析しない可能性がありますか?

+0

センスクエリーを正確に複製しようとしていますか?もしそうなら、最初は 'myIndext'が使用されていますが、スカラコードの' myIndex'は –

+0

です。私の答えはチェックしていません。私が使った名前ではなく、 "myIndex"を目的に付けました。 –

答えて

0

私のデータベースに格納されていない日時を照会していたことがすべて間違っていました。 「2017-01-01」の代わりに「2017-01-02」を挿入しました

関連する問題