diff --git a/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java b/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java index 4f52d57..b7c1f1c 100644 --- a/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java +++ b/lucene/facet/src/java/org/apache/lucene/facet/FacetsCollector.java @@ -140,13 +140,21 @@ public final class FacetsCollector extends Collector { public final void setScorer(Scorer scorer) throws IOException { this.scorer = scorer; } + + /** + * creates a new FixedBitSet. + * This can be overridden for caching. + */ + protected FixedBitSet newHitSet(int maxDoc) { + return new FixedBitSet(maxDoc); + } @Override public final void setNextReader(AtomicReaderContext context) throws IOException { if (bits != null) { matchingDocs.add(new MatchingDocs(this.context, bits, totalHits, scores)); } - bits = new FixedBitSet(context.reader().maxDoc()); + bits = newHitSet(context.reader().maxDoc()); totalHits = 0; if (keepScores) { scores = new float[64]; // some initial size