public override bool Score(ICollector collector, int maxDoc) { // the normalization trick already applies the boost of this query, // so we can use the wrapped scorer directly: collector.SetScorer(scorer); if (scorer.DocID == -1) { scorer.NextDoc(); } while (true) { int scorerDoc = scorer.DocID; if (scorerDoc < maxDoc) { if (filterBits.Get(scorerDoc)) { collector.Collect(scorerDoc); } scorer.NextDoc(); } else { break; } } return(scorer.DocID != Scorer.NO_MORE_DOCS); }
internal static void ScoreAll(ICollector collector, Scorer scorer) { int doc; while ((doc = scorer.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { collector.Collect(doc); } }
internal static bool ScoreRange(ICollector collector, Scorer scorer, int currentDoc, int end) { while (currentDoc < end) { collector.Collect(currentDoc); currentDoc = scorer.NextDoc(); } return(currentDoc != DocIdSetIterator.NO_MORE_DOCS); }
public override int NextDoc() { if (reqScorer == null) { return(doc); } doc = reqScorer.NextDoc(); if (doc == NO_MORE_DOCS) { reqScorer = null; // exhausted, nothing left return(doc); } if (exclDisi == null) { return(doc); } return(doc = ToNonExcluded()); }
public override int NextDoc() { int doc; for (; ;) { doc = scorer.NextDoc(); if (doc == Scorer.NO_MORE_DOCS || filterBits.Get(doc)) { return(scorerDoc = doc); } } }
public override bool Score(ICollector collector, int max) { // TODO: this may be sort of weird, when we are // embedded in a BooleanScorer, because we are // called for every chunk of 2048 documents. But, // then, scorer is a FakeScorer in that case, so any // Collector doing something "interesting" in // setScorer will be forced to use BS2 anyways: collector.SetScorer(scorer); if (max == DocIdSetIterator.NO_MORE_DOCS) { ScoreAll(collector, scorer); return(false); } else { int doc = scorer.DocID; if (doc < 0) { doc = scorer.NextDoc(); } return(ScoreRange(collector, scorer, doc, max)); } }
public override int NextDoc() { return(reqScorer.NextDoc()); }
public override int NextDoc() { return(doc = countingSumScorer.NextDoc()); }