Skip to content

Commit 6b49457

Browse files
committed
Optimize conversion to a cacheable DocIdSet
1 parent 883c593 commit 6b49457

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/main/java/org/elasticsearch/common/lucene/docset/DocIdSets.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,12 @@ public static DocIdSet toCacheable(AtomicReader reader, @Nullable DocIdSet set)
8282
if (set instanceof FixedBitSet) {
8383
return set;
8484
}
85-
return toFixedBitSet(set.iterator(), reader.maxDoc());
85+
FixedBitSet fixedBitSet = new FixedBitSet(reader.maxDoc());
86+
do {
87+
fixedBitSet.set(doc);
88+
doc = it.nextDoc();
89+
} while (doc != DocIdSetIterator.NO_MORE_DOCS);
90+
return fixedBitSet;
8691
}
8792

8893
/**
@@ -100,16 +105,16 @@ public static Bits toSafeBits(AtomicReader reader, @Nullable DocIdSet set) throw
100105
if (iterator == null) {
101106
return new Bits.MatchNoBits(reader.maxDoc());
102107
}
103-
return new FixedBitSet(toFixedBitSet(iterator, reader.maxDoc()));
108+
return toFixedBitSet(iterator, reader.maxDoc());
104109
}
105110

106111
/**
107112
* Creates a {@link FixedBitSet} from an iterator.
108113
*/
109-
public static FixedBitSet toFixedBitSet(DocIdSetIterator iteartor, int numBits) throws IOException {
114+
public static FixedBitSet toFixedBitSet(DocIdSetIterator iterator, int numBits) throws IOException {
110115
FixedBitSet set = new FixedBitSet(numBits);
111116
int doc;
112-
while ((doc = iteartor.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
117+
while ((doc = iterator.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
113118
set.set(doc);
114119
}
115120
return set;

0 commit comments

Comments
 (0)