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); }
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); } }
internal void UpdateCurrentDocument(int docID, LeafReader reader) { try { CurrentDoc = reader.document(docID); } catch (IOException e) { throw new Exception(e); } }
protected internal override void DoSetNextReader(LeafReaderContext context) { this._reader = context.reader(); }