Example #1
0
            /*(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);
            }
Example #2
0
                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);
 }
Example #4
0
 /// <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);
         }
     }
 }
Example #5
0
 internal virtual void  Adjust()
 {
     doc = scorer.Doc();
 }
Example #6
0
 internal HeapedScorerDoc(ScorerDocQueue enclosingInstance, Scorer s) : this(enclosingInstance, s, s.Doc())
 {
 }
Example #7
0
 public override int Doc()
 {
     return(scorer.Doc());
 }
Example #8
0
 public override int Doc()
 {
     return(subQueryScorer.Doc());
 }
Example #9
0
			internal HeapedScorerDoc(ScorerDocQueue enclosingInstance, Scorer s):this(enclosingInstance, s, s.Doc())
			{
			}
Example #10
0
		/// <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;
				}
			}
		}