public static VisitorIterator createFromDocumentSelection(
            String documentSelection,
            BucketIdFactory idFactory,
            int distributionBitCount,
            ProgressToken progress) throws ParseException {
        return createFromDocumentSelection(documentSelection, idFactory, distributionBitCount, progress, 1, 0);
    }
<p>Set the distribution bit count for the iterator and the buckets it
currently maintains and will return in the future.</p>

<p>For document selections that result in a explicit set of buckets, this
is essentially a no-op, so in such a case, disregard the rest of this text.</p>

<p>Changing the number of distribution bits for an unknown document
selection will effectively scale the bucket space that will be visited;
each bit increase or decrease doubling or halving its size, respectively.
When increasing, any pending buckets will be split to ensure the total
bucket space covered remains the same. Correspondingly, when decreasing,
any pending buckets will be merged appropriately.</p>

<p>If there are buckets active at the time of the change, the actual
bucket splitting/merging operations are kept on hold until all active
buckets have been updated, at which point they will be automatically
performed. The iterator will force such an update by not giving out
any new or pending buckets until that happens.</p>

<p><em>Note:</em> when decreasing the number of distribution bits,
there is a chance of losing superbucket progress in a bucket that
is merged with another bucket, leading to potential duplicate
results.</p>

@param distBits New system state distribution bit count
documentapi/src/main/java/com/yahoo/documentapi/VisitorIterator.java