percentile-rank-aggregation.asciidoc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. [[java-aggs-metrics-percentile-rank]]
  2. ==== Percentile Ranks Aggregation
  3. Here is how you can use
  4. {ref}/search-aggregations-metrics-percentile-rank-aggregation.html[Percentile Ranks 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. MetricsAggregationBuilder aggregation =
  11. AggregationBuilders
  12. .percentileRanks("agg")
  13. .field("height")
  14. .percentiles(1.24, 1.91, 2.22);
  15. --------------------------------------------------
  16. ===== Use aggregation response
  17. Import Aggregation definition classes:
  18. [source,java]
  19. --------------------------------------------------
  20. import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile;
  21. import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanks;
  22. --------------------------------------------------
  23. [source,java]
  24. --------------------------------------------------
  25. // sr is here your SearchResponse object
  26. PercentileRanks agg = sr.getAggregations().get("agg");
  27. // For each entry
  28. for (Percentile entry : agg) {
  29. double percent = entry.getPercent(); // Percent
  30. double value = entry.getValue(); // Value
  31. logger.info("percent [{}], value [{}]", percent, value);
  32. }
  33. --------------------------------------------------
  34. This will basically produce:
  35. [source,text]
  36. --------------------------------------------------
  37. percent [29.664353095090945], value [1.24]
  38. percent [73.9335313461868], value [1.91]
  39. percent [94.40095147327283], value [2.22]
  40. --------------------------------------------------