reverse-nested-aggregation.asciidoc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. [[java-aggs-bucket-reverse-nested]]
  2. ==== Reverse Nested Aggregation
  3. Here is how you can use
  4. {ref}/search-aggregations-bucket-reverse-nested-aggregation.html[Reverse Nested Aggregation]
  5. with Java API.
  6. ===== Prepare aggregation request
  7. Here is an example on how to create the aggregation request:
  8. [source,java]
  9. --------------------------------------------------
  10. AggregationBuilder aggregation =
  11. AggregationBuilders
  12. .nested("agg").path("resellers")
  13. .subAggregation(
  14. AggregationBuilders
  15. .terms("name").field("resellers.name")
  16. .subAggregation(
  17. AggregationBuilders
  18. .reverseNested("reseller_to_product")
  19. )
  20. );
  21. --------------------------------------------------
  22. ===== Use aggregation response
  23. Import Aggregation definition classes:
  24. [source,java]
  25. --------------------------------------------------
  26. import org.elasticsearch.search.aggregations.bucket.nested.Nested;
  27. import org.elasticsearch.search.aggregations.bucket.nested.ReverseNested;
  28. import org.elasticsearch.search.aggregations.bucket.terms.Terms;
  29. --------------------------------------------------
  30. [source,java]
  31. --------------------------------------------------
  32. // sr is here your SearchResponse object
  33. Nested agg = sr.getAggregations().get("agg");
  34. Terms name = agg.getAggregations().get("name");
  35. for (Terms.Bucket bucket : name.getBuckets()) {
  36. ReverseNested resellerToProduct = bucket.getAggregations().get("reseller_to_product");
  37. resellerToProduct.getDocCount(); // Doc count
  38. }
  39. --------------------------------------------------