@Override protected HistogramBucket createBucket(Object key, long count, Map<String, AggregationResult> nestedResults, List<MultiBucketsAggregation.Bucket> buckets) { return new HistogramBucket(key, count, nestedResults); }
private ClientApiSearchResponse.AggregateResult toClientApiHistogramResult(HistogramResult agg) { DateFormat bucketDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); ClientApiSearchResponse.HistogramAggregateResult result = new ClientApiSearchResponse.HistogramAggregateResult(); for (HistogramBucket histogramBucket : agg.getBuckets()) { ClientApiSearchResponse.HistogramAggregateResult.Bucket b = new ClientApiSearchResponse.HistogramAggregateResult.Bucket( histogramBucket.getCount(), toClientApiNestedResults(histogramBucket.getNestedResults()) ); String key = histogramBucket.getKey().toString(); if (DATE_TIME_PATTERN.matcher(key).matches()) { try { Date date = bucketDateFormat.parse(key); if (date != null) { key = String.valueOf(date.getTime()); } } catch (ParseException pe) { LOGGER.warn("Unable to parse histogram date", pe); } } result.getBuckets().put(key, b); } return result; }
assertEquals(3, bucket.getCount()); HistogramResult nestedResult = (HistogramResult) bucket.getNestedResults().get("aggNested"); assertEquals(2, nestedResult.getBucketByKey(10).getCount()); assertEquals(1, nestedResult.getBucketByKey(12).getCount()); assertEquals(1, bucket.getCount()); nestedResult = (HistogramResult) bucket.getNestedResults().get("aggNested"); assertEquals(1, nestedResult.getBucketByKey(10).getCount());
public HistogramBucket getBucketByKey(Object key) { String keyStr = key.toString(); for (HistogramBucket histogramBucket : getBuckets()) { String bucketKey = histogramBucket.getKey().toString(); if (bucketKey.equals(keyStr)) { return histogramBucket; } } return null; } }
assertEquals(2, aggResult.getBucketByKey(10).getCount()); assertEquals(4, aggResult.getBucketByKey(12).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.SUNDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.MONDAY).getCount()); assertEquals(2, aggResult.getBucketByKey(Calendar.WEDNESDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.FRIDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.SATURDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(24).getCount()); assertEquals(1, aggResult.getBucketByKey(25).getCount()); assertEquals(1, aggResult.getBucketByKey(26).getCount()); assertEquals(2, aggResult.getBucketByKey(27).getCount()); assertEquals(1, aggResult.getBucketByKey(30).getCount()); assertEquals(5, aggResult.getBucketByKey(Calendar.APRIL).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.MAY).getCount()); assertEquals(5, aggResult.getBucketByKey(2016).getCount()); assertEquals(1, aggResult.getBucketByKey(2017).getCount()); if (isPainlessDateMath()) { assertEquals(3, count(aggResult.getBuckets())); assertEquals(1, aggResult.getBucketByKey(16).getCount()); assertEquals(4, aggResult.getBucketByKey(17).getCount()); assertEquals(1, aggResult.getBucketByKey(21).getCount()); } else { assertEquals(2, count(aggResult.getBuckets())); assertEquals(5, aggResult.getBucketByKey(18).getCount());
assertEquals(3, bucket.getCount()); HistogramResult nestedResult = (HistogramResult) bucket.getNestedResults().get("aggNested"); assertEquals(2, nestedResult.getBucketByKey(10).getCount()); assertEquals(1, nestedResult.getBucketByKey(12).getCount()); assertEquals(1, bucket.getCount()); nestedResult = (HistogramResult) bucket.getNestedResults().get("aggNested"); assertEquals(1, nestedResult.getBucketByKey(10).getCount());
public HistogramBucket getBucketByKey(Object key) { String keyStr = key.toString(); for (HistogramBucket histogramBucket : getBuckets()) { String bucketKey = histogramBucket.getKey().toString(); if (bucketKey.equals(keyStr)) { return histogramBucket; } } return null; } }
assertEquals(2, aggResult.getBucketByKey(10).getCount()); assertEquals(4, aggResult.getBucketByKey(12).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.SUNDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.MONDAY).getCount()); assertEquals(2, aggResult.getBucketByKey(Calendar.WEDNESDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.FRIDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.SATURDAY).getCount()); assertEquals(1, aggResult.getBucketByKey(24).getCount()); assertEquals(1, aggResult.getBucketByKey(25).getCount()); assertEquals(1, aggResult.getBucketByKey(26).getCount()); assertEquals(2, aggResult.getBucketByKey(27).getCount()); assertEquals(1, aggResult.getBucketByKey(30).getCount()); assertEquals(5, aggResult.getBucketByKey(Calendar.APRIL).getCount()); assertEquals(1, aggResult.getBucketByKey(Calendar.MAY).getCount()); assertEquals(5, aggResult.getBucketByKey(2016).getCount()); assertEquals(1, aggResult.getBucketByKey(2017).getCount()); if (isPainlessDateMath()) { assertEquals(3, count(aggResult.getBuckets())); assertEquals(1, aggResult.getBucketByKey(16).getCount()); assertEquals(4, aggResult.getBucketByKey(17).getCount()); assertEquals(1, aggResult.getBucketByKey(21).getCount()); } else { assertEquals(2, count(aggResult.getBuckets())); assertEquals(5, aggResult.getBucketByKey(18).getCount());
@Override protected HistogramBucket createBucket(Object key, long count, Map<String, AggregationResult> nestedResults, List<MultiBucketsAggregation.Bucket> buckets) { return new HistogramBucket(key, count, nestedResults); }
@Override protected HistogramBucket createBucket(Object key, long count, Map<String, AggregationResult> nestedResults, List<MultiBucketsAggregation.Bucket> buckets) { return new HistogramBucket(key, count, nestedResults); }
@Override protected HistogramBucket createBucket(Object key, long count, Map<String, AggregationResult> nestedResults, List<MultiBucketsAggregation.Bucket> buckets) { return new HistogramBucket(key, count, nestedResults); }
private HistogramResult getCalendarFieldHistogramResult(final CalendarFieldAggregation agg, Iterator<T> it) { String propertyName = agg.getPropertyName(); final Calendar calendar = GregorianCalendar.getInstance(agg.getTimeZone()); Map<Integer, List<T>> elementsByProperty = getElementsByProperty(it, propertyName, o -> { Date d = (Date) o; calendar.setTime(d); //noinspection MagicConstant return calendar.get(agg.getCalendarField()); }); Map<Integer, HistogramBucket> buckets = new HashMap<>(24); for (Map.Entry<Integer, List<T>> entry : elementsByProperty.entrySet()) { int key = entry.getKey(); int count = entry.getValue().size(); Map<String, AggregationResult> nestedResults = getNestedResults(agg.getNestedAggregations(), entry.getValue()); buckets.put(key, new HistogramBucket(key, count, nestedResults)); } return new HistogramResult(buckets.values()); }
private HistogramResult getCalendarFieldHistogramResult(final CalendarFieldAggregation agg, Iterator<T> it) { String propertyName = agg.getPropertyName(); final Calendar calendar = GregorianCalendar.getInstance(agg.getTimeZone()); Map<Integer, List<T>> elementsByProperty = getElementsByProperty(it, propertyName, o -> { Date d = (Date) o; calendar.setTime(d); //noinspection MagicConstant return calendar.get(agg.getCalendarField()); }); Map<Integer, HistogramBucket> buckets = new HashMap<>(24); for (Map.Entry<Integer, List<T>> entry : elementsByProperty.entrySet()) { int key = entry.getKey(); int count = entry.getValue().size(); Map<String, AggregationResult> nestedResults = getNestedResults(agg.getNestedAggregations(), entry.getValue()); buckets.put(key, new HistogramBucket(key, count, nestedResults)); } return new HistogramResult(buckets.values()); }