2016-05-26 11 views
0

Javaでクエリの集計を取得するにはどうすればよいですか?elasticsearch Javaで集計を取得する

これが私のクエリです:

GET my_dataset/document/_search 
    { 
     "query": { 
      "match": { 
       "docId": "1" 
      } 
     }, 
     "aggs": { 
      "text": { 
       "avg": { 
        "script": "doc['text'].values.size()" 
       } 
      } 
     } 
    } 

これは私が

.. 
}, 
    "aggregations": { 
    "text": { 
     "value": 32 
    } 
    } 

がどのように値32を得ることができます取得出力のですか?私は enter image description here

+0

Javaでクエリをどのように構築しているかを表示できますか? 'response.getAggregations()。get(" text ")。get(" value ");'? – Val

+0

get()は集約に有効なメソッドではありません。 get( "value")コンパイルする前にそのエラーを返します。 – nabrugir

+0

十分です。クエリが実行された後にブレークポイントを設定すると、 'response.getAggregations()'オブジェクトには何が表示されますか? – Val

答えて

1

解決策rked

response.getAggregations().get("text").getProperty("value") 

のgetProperty( "値"))(のgetValueの代わりに使用されるようになっています。バージョン2.3.3でテスト

import org.elasticsearch.search.aggregations.metrics.avg.Avg; 
... 
Avg avg = searchResponse.getAggregations().get("text"); 
double value = avg.getValue(); 

+0

なぜこのソリューションを提案するのか説明してください。質問は非常に良い定式化され、そのような裸の回答を投稿するには少し些細なようです(私はそれが正しい答えだと確信していますが、 –

0

のデバッグ中にこれは私が得たこと応答である。これは、私はJavaでクエリを作成し、応答

XContentBuilder aggregationBuilder = XContentFactory.jsonBuilder(); 
     aggregationBuilder.startObject() 
       .startObject("query") 
       .startObject("match") 
       .field("docId", docID) 
       .endObject() 
       .endObject() 
       .startObject("aggs") 
       .startObject("text") 
       .startObject("max") 
       .field("script", "doc['text'].values.size()") 
       .endObject() 
       .endObject() 
       .endObject() 
       .endObject(); 

       SearchResponse response = client.prepareSearch("my_dataset").setTypes("document") 
             .setSource(aggregationBuilder) 
             .execute() 
             .actionGet(); 

を取得する方法である無成功

response.getAggregations().getValue("text"); 

で次のことをしようとしていますお試しいただけますか?

response.getAggregations().get("text").getValue(); 
+0

動作しません。コンパイルできません。 – nabrugir

+0

どのESクライアントのバージョンを使用していますか? – JVXR

+0

バージョン2.3.3 – nabrugir

関連する問題