java elasticsearch buckets

¿Cómo acceder al resultado de agregaciones con elasticSearch java api en SearchResponse?



buckets (2)

Mirando la fuente de ES en Github , veo lo siguiente en sus pruebas:

SearchResponse response = client().prepareSearch("idx").setTypes("type") .setQuery(matchAllQuery()) .addAggregation(terms("keys").field("key").size(3).order(Terms.Order.count(false))) .execute().actionGet(); Terms terms = response.getAggregations().get("keys"); Collection<Terms.Bucket> buckets = terms.getBuckets(); assertThat(buckets.size(), equalTo(3));

¿Hay una manera de recuperar los grupos de agregaciones en una respuesta de búsqueda, con la API de Java?

{ "took" : 185, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 200, "max_score" : 1.0, "hits" : [...] }, "aggregations" : { "agg1" : { "buckets" : [...] }, "agg2" : { "buckets" : [...] } } }

Actualmente, es posible obtener las agregaciones, pero no puedo averiguar cómo obtener los cubos.

La versión 1.0 actual de ElasticSearch (v1.0.0.Beta2) sigue siendo una versión beta, y tal vez aún deba agregarse esta función, pero no encontró información sobre ese punto.


Si alguien se pregunta acerca de cómo acceder a los documentos reales, puede contar con una lista de estos grupos siguiendo el código.

Terms terms = response.getAggregations().get("agg1"); Collection<Terms.Bucket> buckets = terms.getBuckets(); for (Bucket bucket : buckets) { System.out.println(bucket.getKeyAsText() +" ("+bucket.getDocCount()+")"); }