Beispiel #1
0
 internal bool EnsureValidDisi()
 {
     while (CurrentIdIterator == null && Docs.MoveNext())
     {
         MatchingDocs matchingDocs = Docs.Current;
         try
         {
             CurrentIdIterator = matchingDocs.DocIdSet.GetEnumerator();
             if (KeepScores)
             {
                 CurrentScorer = new ReplayingScorer(matchingDocs.Scores);
             }
             else
             {
                 CurrentScorer = new ConstantScoreScorer(null, Float.NaN, CurrentIdIterator);
             }
             CurrentReader = matchingDocs.Context.reader();
         }
         catch (IOException e)
         {
             throw new Exception(e);
         }
     }
     return(CurrentIdIterator != null);
 }
Beispiel #2
0
 protected internal override Document FetchNextOrNull()
 {
     if (EnsureValidDisi())
     {
         try
         {
             int doc = CurrentIdIterator.nextDoc();
             if (doc == DocIdSetIterator.NO_MORE_DOCS)
             {
                 CurrentIdIterator = null;
                 CurrentScorer     = null;
                 CurrentReader     = null;
                 return(FetchNextOrNull());
             }
             return(CurrentReader.document(doc));
         }
         catch (IOException e)
         {
             throw new Exception(e);
         }
     }
     else
     {
         return(null);
     }
 }
Beispiel #3
0
 internal void UpdateCurrentDocument(int docID, LeafReader reader)
 {
     try
     {
         CurrentDoc = reader.document(docID);
     }
     catch (IOException e)
     {
         throw new Exception(e);
     }
 }
Beispiel #4
0
 protected internal override void DoSetNextReader(LeafReaderContext context)
 {
     this._reader = context.reader();
 }