@@ -464,33 +464,36 @@ For backward compatibility, we disable the merge sort and use ({@link InternalTe
464464 }
465465 final int size = Math .min (localBucketCountThresholds .getRequiredSize (), reducedBuckets .size ());
466466 final Comparator <MultiBucketsAggregation .Bucket > cmp = order .comparator ();
467- if (size < reducedBuckets .size ()) {
468- ArrayUtil .select (reducedBucketsArr , 0 , reducedBuckets .size (), size , cmp );
469- }
470- int selectedSize = 0 ;
467+
471468 for (B bucket : reducedBucketsArr ) {
472469 if (sumDocCountError == -1 ) {
473470 bucket .setDocCountError (-1 );
474471 } else {
475472 final long finalSumDocCountError = sumDocCountError ;
476473 bucket .setDocCountError (docCountError -> docCountError + finalSumDocCountError );
477474 }
478- if (bucket .getDocCount () >= localBucketCountThresholds .getMinDocCount ()) {
479- B removed = ((selectedSize == size ) ? bucket : null );
480- if (removed != null ) {
481- otherDocCount += removed .getDocCount ();
482- reduceContext .consumeBucketsAndMaybeBreak (-countInnerBucket (removed ));
483- } else {
484- selectedSize ++;
485- reduceContext .consumeBucketsAndMaybeBreak (1 );
486- }
487- } else {
475+
476+ if (bucket .getDocCount () < localBucketCountThresholds .getMinDocCount ()) {
488477 reduceContext .consumeBucketsAndMaybeBreak (-countInnerBucket (bucket ));
489478 }
490479 }
480+ if (size < reducedBuckets .size ()) {
481+ ArrayUtil .select (reducedBucketsArr , 0 , reducedBuckets .size (), size , cmp );
482+ }
483+
484+ int selectedSize = 0 ;
485+ for (B bucket : reducedBucketsArr ) {
486+ B removed = ((selectedSize == size ) ? bucket : null );
487+ if (removed != null ) {
488+ otherDocCount += removed .getDocCount ();
489+ reduceContext .consumeBucketsAndMaybeBreak (-countInnerBucket (removed ));
490+ } else {
491+ selectedSize ++;
492+ reduceContext .consumeBucketsAndMaybeBreak (1 );
493+ }
494+ }
491495 if (selectedSize != size ) {
492496 list = createBucketsArray (selectedSize );
493- System .arraycopy (reducedBucketsArr , 0 , list , 0 , selectedSize );
494497 } else {
495498 list = reducedBucketsArr ;
496499 }
0 commit comments