Docs( int maxDoc ) { bits = new DocIdSetBuilder( maxDoc ); }
public Docs( int maxDoc ) { bits = new DocIdSetBuilder( maxDoc ); }
} else { assert matchingTerms.size() == threshold; builder = new DocIdSetBuilder(reader.maxDoc(), terms); docs = termsEnum.postings(docs, PostingsEnum.NONE); builder.add(docs);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field); final IntersectVisitor visitor = getIntersectVisitor(result);
DocIdSetBuilder builder = new DocIdSetBuilder(context.reader().maxDoc(), terms); if (collectedTerms.isEmpty() == false) { TermsEnum termsEnum2 = terms.iterator();
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field);
/** get a scorer supplier for INTERSECT queries */ protected ScorerSupplier getIntersectScorerSupplier(LeafReader reader, PointValues values, Weight weight) throws IOException { DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field); IntersectVisitor visitor = getSparseIntersectVisitor(result); return new RelationScorerSupplier(values, visitor) { @Override public Scorer get(long leadCost) throws IOException { return getIntersectsScorer(XLatLonShapeQuery.this, reader, weight, result, score()); } }; }
Visitor(LeafReaderContext context, CompositeValuesCollectorQueue queue, DocIdSetBuilder builder, int bytesPerDim, long lowerBucket, long upperBucket) { this.context = context; this.maxDoc = context.reader().maxDoc(); this.queue = queue; this.builder = builder; this.lowerBucket = lowerBucket; this.upperBucket = upperBucket; this.bucketDocsBuilder = new DocIdSetBuilder(maxDoc); this.bytesPerDim = bytesPerDim; }
DocIdSetBuilder builder = fillDocIdSet ? new DocIdSetBuilder(context.reader().maxDoc(), values, field) : null; Visitor visitor = new Visitor(context, queue, builder, values.getBytesPerDimension(), lowerBucket, upperBucket); try {
public QueryState(IndexInput in, int maxDoc, long minValueIncl, long maxValueIncl, SortedNumericDocValues sndv) { this.in = in; this.docs = new DocIdSetBuilder(maxDoc); this.minValueIncl = minValueIncl; this.maxValueIncl = maxValueIncl; this.sndv = sndv; } }
@Override protected void start() throws IOException { approxBuilder = new DocIdSetBuilder(maxDoc, terms); exactBuilder = new DocIdSetBuilder(maxDoc, terms); }
@Override protected void start() throws IOException { results = new DocIdSetBuilder(maxDoc, terms); }
@Override public void visit(int docID, byte[] packedValue) throws IOException { if (compare(packedValue, packedValue) != PointValues.Relation.CELL_CROSSES_QUERY) { remaining --; return; } long bucket = bucketFunction.applyAsLong(packedValue); if (first == false && bucket != lastBucket) { final DocIdSet docIdSet = bucketDocsBuilder.build(); if (processBucket(queue, context, docIdSet.iterator(), lastBucket, builder) && // lower bucket is inclusive lowerBucket != lastBucket) { // this bucket does not have any competitive composite buckets, // we can early terminate the collection because the remaining buckets are guaranteed // to be greater than this bucket. throw new CollectionTerminatedException(); } bucketDocsBuilder = new DocIdSetBuilder(maxDoc); assert remaining > 0; adder = bucketDocsBuilder.grow(remaining); } lastBucket = bucket; first = false; adder.add(docID); remaining --; }
/** * Returns a DocIdSet per segments containing the matching docs for the specified slice. */ private DocIdSet build(LeafReader reader) throws IOException { final DocIdSetBuilder builder = new DocIdSetBuilder(reader.maxDoc()); final Terms terms = reader.terms(getField()); final TermsEnum te = terms.iterator(); PostingsEnum docsEnum = null; for (BytesRef term = te.next(); term != null; term = te.next()) { // use a fixed seed instead of term.hashCode() otherwise this query may return inconsistent results when // running on another replica (StringHelper sets its default seed at startup with current time) int hashCode = StringHelper.murmurhash3_x86_32(term, SEED); if (contains(hashCode)) { docsEnum = te.postings(docsEnum, PostingsEnum.NONE); builder.add(docsEnum); } } return builder.build(); } }
DocIdSetBuilder builder = fillDocIdSet ? new DocIdSetBuilder(context.reader().maxDoc(), terms) : null; PostingsEnum reuse = null; boolean first = true;
/** get a scorer supplier for INTERSECT queries */ protected ScorerSupplier getIntersectScorerSupplier(LeafReader reader, PointValues values, Weight weight) throws IOException { DocIdSetBuilder result = new DocIdSetBuilder(reader.maxDoc(), values, field); IntersectVisitor visitor = getSparseIntersectVisitor(result); return new RelationScorerSupplier(values, visitor) { @Override public Scorer get(long leadCost) throws IOException { return getIntersectsScorer(LatLonShapeQuery.this, reader, weight, result, score()); } }; }
Visitor(LeafReaderContext context, CompositeValuesCollectorQueue queue, DocIdSetBuilder builder, int bytesPerDim, long lowerBucket, long upperBucket) { this.context = context; this.maxDoc = context.reader().maxDoc(); this.queue = queue; this.builder = builder; this.lowerBucket = lowerBucket; this.upperBucket = upperBucket; this.bucketDocsBuilder = new DocIdSetBuilder(maxDoc); this.bytesPerDim = bytesPerDim; }
Visitor(LeafReaderContext context, CompositeValuesCollectorQueue queue, DocIdSetBuilder builder, int bytesPerDim, long lowerBucket, long upperBucket) { this.context = context; this.maxDoc = context.reader().maxDoc(); this.queue = queue; this.builder = builder; this.lowerBucket = lowerBucket; this.upperBucket = upperBucket; this.bucketDocsBuilder = new DocIdSetBuilder(maxDoc); this.bytesPerDim = bytesPerDim; }
@Override protected void doSetNextReader(LeafReaderContext context) throws IOException { if (docsBuilder != null) { matchingDocs.add(new MatchingDocs(this.context, docsBuilder.build(), totalHits, scores)); } docsBuilder = new DocIdSetBuilder(context.reader().maxDoc()); totalHits = 0; if (keepScores) { scores = new float[64]; // some initial size } this.context = context; }