/*(non-Javadoc) @see Lucene.Net.Search.Scorer#next() */ public override bool Next() { bool hasNext = subQueryScorer.Next(); if (hasNext) { for (int i = 0; i < valSrcScorers.Length; i++) { valSrcScorers[i].SkipTo(subQueryScorer.Doc()); } } return(hasNext); }
public override bool Next() { do { if (!scorer.Next()) { return(false); } }while (!bitset.Get(scorer.Doc())); /* When skipTo() is allowed on scorer it should be used here * in combination with bitset.nextSetBit(...) * See the while loop in skipTo() below. */ return(true); }
private bool AdvanceToCommon() { while (scorer.Doc() != docIdSetIterator.Doc()) { if (scorer.Doc() < docIdSetIterator.Doc()) { if (!scorer.SkipTo(docIdSetIterator.Doc())) { return(false); } } else if (!docIdSetIterator.SkipTo(scorer.Doc())) { return(false); } } return(true); }
/// <summary> Adds a Scorer to the ScorerDocQueue in log(size) time if either /// the ScorerDocQueue is not full, or not lessThan(scorer, top()). /// </summary> /// <param name="">scorer /// </param> /// <returns> true if scorer is added, false otherwise. /// </returns> public virtual bool Insert(Scorer scorer) { if (size < maxSize) { Put(scorer); return(true); } else { int docNr = scorer.Doc(); if ((size > 0) && (!(docNr < topHSD.doc))) { // heap[1] is top() heap[1] = new HeapedScorerDoc(this, scorer, docNr); DownHeap(); return(true); } else { return(false); } } }
internal virtual void Adjust() { doc = scorer.Doc(); }
internal HeapedScorerDoc(ScorerDocQueue enclosingInstance, Scorer s) : this(enclosingInstance, s, s.Doc()) { }
public override int Doc() { return(scorer.Doc()); }
public override int Doc() { return(subQueryScorer.Doc()); }
internal HeapedScorerDoc(ScorerDocQueue enclosingInstance, Scorer s):this(enclosingInstance, s, s.Doc()) { }
/// <summary> Adds a Scorer to the ScorerDocQueue in log(size) time if either /// the ScorerDocQueue is not full, or not lessThan(scorer, top()). /// </summary> /// <param name="">scorer /// </param> /// <returns> true if scorer is added, false otherwise. /// </returns> public virtual bool Insert(Scorer scorer) { if (size < maxSize) { Put(scorer); return true; } else { int docNr = scorer.Doc(); if ((size > 0) && (!(docNr < topHSD.doc))) { // heap[1] is top() heap[1] = new HeapedScorerDoc(this, scorer, docNr); DownHeap(); return true; } else { return false; } } }