### Description

Min/Max aggregations do not require any scaling for the random_sampler results. Additionally, if the min/max an be determined via the pointReader (i.e. not by individual doc values), we should use that as it means that sampler doesn't need to supply documents to the min/max agg, potentially speeding things up significantly and improving accuracy.

related to: https://github.com/elastic/elasticsearch/issues/84353
server/src/main/java/org/elasticsearch/search/aggregations/AggregatorBase.java
if (parent != null) {
            return null;
        }
        return config.getPointReaderOrNull();
    }
    /**
     * Increment or decrement the number of bytes that have been allocated to service
     * this request and potentially trigger a {@link CircuitBreakingException}. The
     * number of bytes allocated is automatically decremented with the circuit breaker
     * service on closure of this aggregator.
     * If memory has been returned, decrement it without tripping the breaker.
     * For performance reasons subclasses should not call this millions of times
     * each with small increments and instead batch up into larger allocations.
     *
     * @param bytes the number of bytes to register or negative to deregister the bytes
     * @return the cumulative size in bytes allocated by this aggregator to service this request
     */
    protected long addRequestCircuitBreakerBytes(long bytes) {
        
        if (bytes > 0) {
            context.breaker().addEstimateBytesAndMaybeBreak(bytes, "<agg [" + name + "]>");
        } else {
            context.breaker().addWithoutBreaking(bytes);
        }
        this.requestBytesUsed += bytes;
        return requestBytesUsed;
    }
    /**
     * Most aggregators don't need scores, make sure to extend this method if
     * your aggregator needs them.