private void addSpecificPercentiles(PercentilesAggregationBuilder percentilesBuilder, List<KVValue> params) { List<Double> percentiles = new ArrayList<>(); for (KVValue kValue : params) { if (kValue.value.getClass().equals(BigDecimal.class)) { BigDecimal percentile = (BigDecimal) kValue.value; percentiles.add(percentile.doubleValue()); } else if (kValue.value instanceof Integer) { percentiles.add(((Integer) kValue.value).doubleValue()); } } if (percentiles.size() > 0) { double[] percentilesArr = new double[percentiles.size()]; int i = 0; for (Double percentile : percentiles) { percentilesArr[i] = percentile; i++; } percentilesBuilder.percentiles(percentilesArr); } }
Percentiles percentiles = (Percentiles) aggregation; for (Percentile p : percentiles) { percentileHeaders.add(String.valueOf(p.getPercent())); line.add(percentiles.percentileAsString(p.getPercent()));
mergeHeadersWithPrefix(header, name, percentileHeaders); Percentiles percentiles = (Percentiles) aggregation; line.add(percentiles.percentile(1.0)); line.add(percentiles.percentile(5.0)); line.add(percentiles.percentile(25.0)); line.add(percentiles.percentile(50.0)); line.add(percentiles.percentile(75)); line.add(percentiles.percentile(95.0)); line.add(percentiles.percentile(99.0)); } else { throw new ObjectResultsExtractException("unknown NumericMetricsAggregation.MultiValue:" + aggregation.getClass());
public static AggregationBuilder parse(String aggregationName, XContentParser parser) throws IOException { InternalBuilder internal = PARSER.parse(parser, new InternalBuilder(aggregationName), null); // we need to return a PercentilesAggregationBuilder for equality checks to work PercentilesAggregationBuilder returnedAgg = new PercentilesAggregationBuilder(internal.name); setIfNotNull(returnedAgg::valueType, internal.valueType()); setIfNotNull(returnedAgg::format, internal.format()); setIfNotNull(returnedAgg::missing, internal.missing()); setIfNotNull(returnedAgg::field, internal.field()); setIfNotNull(returnedAgg::script, internal.script()); setIfNotNull(returnedAgg::method, internal.method()); setIfNotNull(returnedAgg::percentiles, internal.percentiles()); returnedAgg.keyed(internal.keyed()); returnedAgg.compression(internal.compression()); returnedAgg.numberOfSignificantValueDigits(internal.numberOfSignificantValueDigits()); return returnedAgg; }
@Override public Percentile next() { Percentile percentile = iterator.next(); return new Percentile(percentile.getValue(), percentile.getPercent()); } };
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; }
/** * Create a new {@link PercentileRanks} aggregation with the given name. */ public static PercentileRanksAggregationBuilder percentileRanks(String name, double[] values) { return new PercentileRanksAggregationBuilder(name, values); }
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], percentiles[i]); ++i; return next; }
/** * Create a new {@link Percentiles} aggregation with the given name. */ public static PercentilesAggregationBuilder percentiles(String name) { return new PercentilesAggregationBuilder(name); }
@Override public Iterator<Percentile> iterator() { final Iterator<Percentile> iterator = super.iterator(); return new Iterator<Percentile>() { @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Percentile next() { Percentile percentile = iterator.next(); return new Percentile(percentile.getValue(), percentile.getPercent()); } }; }
/** * Read from a stream. */ public PercentilesAggregationBuilder(StreamInput in) throws IOException { super(in, ValuesSourceType.NUMERIC, ValueType.NUMERIC); percents = in.readDoubleArray(); keyed = in.readBoolean(); numberOfSignificantValueDigits = in.readVInt(); compression = in.readDouble(); method = PercentilesMethod.readFromStream(in); }
@Override public String percentAsString(double value) { return getPercentileAsString(value); } }
@Override public double percent(double value) { return getPercentile(value); }
@Override public InternalBuilder method(PercentilesMethod method) { if (setOnce == false) { super.method(method); setOnce = true; return this; } else { throw new IllegalStateException("Only one percentiles method should be declared."); } } }
@Override public Percentile next() { Percentile percentile = iterator.next(); return new Percentile(percentile.getValue(), percentile.getPercent()); } };
@Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map<String, Object> metaData) { return new PercentileRanksAggregationBuilder(this, factoriesBuilder, metaData); }
@Override public Percentile next() { double percent = percents[i]; double value = (state.getTotalCount() == 0) ? Double.NaN : state.getValueAtPercentile(percent); final Percentile next = new Percentile(percent, value); ++i; return next; }
@Override protected AggregationBuilder shallowCopy(Builder factoriesBuilder, Map<String, Object> metaData) { return new PercentilesAggregationBuilder(this, factoriesBuilder, metaData); }
@Override public Iterator<Percentile> iterator() { final Iterator<Percentile> iterator = super.iterator(); return new Iterator<Percentile>() { @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Percentile next() { Percentile percentile = iterator.next(); return new Percentile(percentile.getValue(), percentile.getPercent()); } }; }
/** * Read from a stream. */ public PercentileRanksAggregationBuilder(StreamInput in) throws IOException { super(in, ValuesSourceType.NUMERIC, ValueType.NUMERIC); values = in.readDoubleArray(); keyed = in.readBoolean(); numberOfSignificantValueDigits = in.readVInt(); compression = in.readDouble(); method = PercentilesMethod.readFromStream(in); }