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); }