Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            internal static void ScoreAll(ICollector collector, Scorer scorer)
            {
                int doc;

                while ((doc = scorer.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS)
                {
                    collector.Collect(doc);
                }
            }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
 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());
 }
Exemplo n.º 5
0
            public override int NextDoc()
            {
                int doc;

                for (; ;)
                {
                    doc = scorer.NextDoc();
                    if (doc == Scorer.NO_MORE_DOCS || filterBits.Get(doc))
                    {
                        return(scorerDoc = doc);
                    }
                }
            }
Exemplo n.º 6
0
 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));
     }
 }
Exemplo n.º 7
0
 public override int NextDoc()
 {
     return(reqScorer.NextDoc());
 }
Exemplo n.º 8
0
 public override int NextDoc()
 {
     return(doc = countingSumScorer.NextDoc());
 }