| Original |
|---|
1 @Override
2 public StringTerms buildAggregation(long owningBucketOrdinal) {
3 assert owningBucketOrdinal == 0;
4 final int size = (int) Math.min(bucketOrds.size(), shardSize);
5
6 BucketPriorityQueue ordered = new BucketPriorityQueue(size, order.comparator());
7 OrdinalBucket spare = null;
8 for (int i = 0; i < bucketOrds.size(); ++i) {
9 if (spare == null) {
10 spare = new OrdinalBucket();
11 }
12 bucketOrds.get(i, spare.termBytes);
13 spare.docCount = bucketDocCount(i);
14 spare.bucketOrd = i;
15 spare = (OrdinalBucket) ordered.insertWithOverflow(spare);
16 }
17
18 final InternalTerms.Bucket[] list = new InternalTerms.Bucket[ordered.size()];
19 for (int i = ordered.size() - 1; i >= 0; --i) {
20 final OrdinalBucket bucket = (OrdinalBucket) ordered.pop();
21 bucket.aggregations = bucketAggregations(bucket.bucketOrd);
22 list[i] = bucket;
23 }
24 return new StringTerms(name, order, requiredSize, Arrays.asList(list));
25 }
26
|
| | Modified |
|---|
1 @Override
2 public StringTerms buildAggregation(long owningBucketOrdinal) {
3 assert owningBucketOrdinal == 0;
4 final int size = (int) Math.min(bucketOrds.size(), shardSize);
5
6 BucketPriorityQueue ordered = new BucketPriorityQueue(size, order.comparator(this));
7 StringTerms.Bucket spare = null;
8 for (int i = 0; i < bucketOrds.size(); i++) {
9 if (spare == null) {
10 spare = new StringTerms.Bucket(new BytesRef(), 0, null);
11 }
12 bucketOrds.get(i, spare.termBytes);
13 spare.docCount = bucketDocCount(i);
14 spare.bucketOrd = i;
15 spare = (StringTerms.Bucket) ordered.insertWithOverflow(spare);
16 }
17
18 final InternalTerms.Bucket[] list = new InternalTerms.Bucket[ordered.size()];
19 for (int i = ordered.size() - 1; i >= 0; --i) {
20 final StringTerms.Bucket bucket = (StringTerms.Bucket) ordered.pop();
21 bucket.aggregations = bucketAggregations(bucket.bucketOrd);
22 list[i] = bucket;
23 }
24 return new StringTerms(name, order, requiredSize, Arrays.asList(list));
25 }
26
|
|