private TermsResult getTermsAggregationResult(TermsAggregation agg, Iterator<T> it) { String propertyName = agg.getPropertyName(); Map<Object, List<T>> elementsByProperty = getElementsByProperty(it, propertyName, o -> o); elementsByProperty = collapseBucketsByCase(elementsByProperty); List<TermsBucket> buckets = new ArrayList<>(); for (Map.Entry<Object, List<T>> entry : elementsByProperty.entrySet()) { Object key = entry.getKey(); int count = entry.getValue().size(); Map<String, AggregationResult> nestedResults = getNestedResults(agg.getNestedAggregations(), entry.getValue()); buckets.add(new TermsBucket(key, count, nestedResults)); } return new TermsResult(buckets); }
private TermsResult getTermsAggregationResult(TermsAggregation agg, Iterator<T> it) { String propertyName = agg.getPropertyName(); Map<Object, List<T>> elementsByProperty = getElementsByProperty(it, propertyName, o -> o); elementsByProperty = collapseBucketsByCase(elementsByProperty); List<TermsBucket> buckets = new ArrayList<>(); for (Map.Entry<Object, List<T>> entry : elementsByProperty.entrySet()) { Object key = entry.getKey(); int count = entry.getValue().size(); Map<String, AggregationResult> nestedResults = getNestedResults(agg.getNestedAggregations(), entry.getValue()); buckets.add(new TermsBucket(key, count, nestedResults)); } return new TermsResult(buckets); }
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()); }