I am using Java client API to get aggregations back. Following is the structure which I am dealing with.
aggregations top_models buckets key : "BMW" doc_count : 3 top_models buckets key : "X5" doc_count : 2 top_hits source model : X5 color : Red source model:X5 color : White key : "X3" doc_count : 1 top_hits source model : X3 color : Red key : "Mercedes" doc_count : 2 top_models buckets key : "Benz" doc_count : 1 top_hits source model : Benz color : Red key : "ML" doc_count : 1 top_hits source model : ML color : Black I am trying following (toy) code to retrieve all the results. def getAggregations(aggres: Option[Aggregations]): Option[Iterable[Any]] = { aggres map { agg => val aggS = agg.asMap().asScala aggS map { case (name, termAgg: Terms) => getBuckets(Option(termAgg.getBuckets ())) case (name, topHits: TopHits) => val tHits = Option(topHits.getHits()) tHits map { th => getTopHits(th.asScala) } case (h, a: InternalAvg) => println(h + "=>" + a.getValue()); } } } def getBuckets(buckets: Option[java.util.Collection[Bucket]]) = { buckets map { bks => val bksS = bks.asScala bksS map { b => println("Bucket Key =>" + b.getKey()) println("Doc count =>" + b.getDocCount()) getAggregations(Option(b.getAggregations()) } } } I need to populate final result to this class case class FinalResponse(bucketName: String, count: Long, children: List[ FinalResponse]) With nested relationship between Aggregations and Buckets it's becoming convoluted to retrieve all aggregation results. how do you approach this? -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/b47ef1bd-9a15-4d37-94f2-95b687dfc0d4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.