public override bool Next()
 {
     if (leafOrd >= numLeaves)
     {
         return(false);
     }
     if (current == null)
     {
         AtomicReaderContext ctx = leaves[leafOrd];
         current = query.GetSpans(ctx, ((AtomicReader)ctx.Reader).LiveDocs, termContexts);
     }
     while (true)
     {
         if (current.Next())
         {
             return(true);
         }
         if (++leafOrd < numLeaves)
         {
             AtomicReaderContext ctx = leaves[leafOrd];
             current = query.GetSpans(ctx, ((AtomicReader)ctx.Reader).LiveDocs, termContexts);
         }
         else
         {
             current = null;
             break;
         }
     }
     return(false);
 }
示例#2
0
 public override bool Next()
 {
     if (LeafOrd >= NumLeaves)
     {
         return(false);
     }
     if (Current == null)
     {
         AtomicReaderContext ctx = Leaves[LeafOrd];
         Current = Query.GetSpans(ctx, ((AtomicReader)ctx.Reader).LiveDocs, TermContexts);
     }
     while (true)
     {
         if (Current.Next())
         {
             return(true);
         }
         if (++LeafOrd < NumLeaves)
         {
             AtomicReaderContext ctx = Leaves[LeafOrd];
             Current = Query.GetSpans(ctx, ((AtomicReader)ctx.Reader).LiveDocs, TermContexts);
         }
         else
         {
             Current = null;
             break;
         }
     }
     return(false);
 }
示例#3
0
 public override Scorer GetScorer(AtomicReaderContext context, IBits acceptDocs)
 {
     if (m_stats == null)
     {
         return(null);
     }
     else
     {
         return(new SpanScorer(m_query.GetSpans(context, acceptDocs, m_termContexts), this, m_similarity.GetSimScorer(m_stats, context)));
     }
 }
示例#4
0
 public override Scorer Scorer(AtomicReaderContext context, Bits acceptDocs)
 {
     if (Stats == null)
     {
         return(null);
     }
     else
     {
         return(new SpanScorer(query.GetSpans(context, acceptDocs, TermContexts), this, Similarity.DoSimScorer(Stats, context)));
     }
 }
示例#5
0
 public static Spans Wrap(IndexReaderContext topLevelReaderContext, SpanQuery query)
 {
     IDictionary<Term, TermContext> termContexts = new Dictionary<Term, TermContext>();
     SortedSet<Term> terms = new SortedSet<Term>();
     query.ExtractTerms(terms);
     foreach (Term term in terms)
     {
         termContexts[term] = TermContext.Build(topLevelReaderContext, term);
     }
     IList<AtomicReaderContext> leaves = topLevelReaderContext.Leaves();
     if (leaves.Count == 1)
     {
         AtomicReaderContext ctx = leaves[0];
         return query.GetSpans(ctx, ((AtomicReader)ctx.Reader()).LiveDocs, termContexts);
     }
     return new MultiSpansWrapper(leaves, query, termContexts);
 }
示例#6
0
        public static Spans Wrap(IndexReaderContext topLevelReaderContext, SpanQuery query)
        {
            IDictionary <Term, TermContext> termContexts = new Dictionary <Term, TermContext>();
            SortedSet <Term> terms = new SortedSet <Term>();

            query.ExtractTerms(terms);
            foreach (Term term in terms)
            {
                termContexts[term] = TermContext.Build(topLevelReaderContext, term);
            }
            IList <AtomicReaderContext> leaves = topLevelReaderContext.Leaves;

            if (leaves.Count == 1)
            {
                AtomicReaderContext ctx = leaves[0];
                return(query.GetSpans(ctx, ((AtomicReader)ctx.Reader).LiveDocs, termContexts));
            }
            return(new MultiSpansWrapper(leaves, query, termContexts));
        }
        // :NOTE: getBoost and setBoost are not proxied to the maskedQuery
        // ...this is done to be more consistent with things like SpanFirstQuery

        public override Spans GetSpans(AtomicReaderContext context, IBits acceptDocs, IDictionary <Term, TermContext> termContexts)
        {
            return(maskedQuery.GetSpans(context, acceptDocs, termContexts));
        }
示例#8
0
 public override Scorer Scorer(IndexReader reader, bool scoreDocsInOrder, bool topScorer)
 {
     return(new SpanScorer(internalQuery.GetSpans(reader), this, similarity, reader.Norms(internalQuery.Field)));
 }
示例#9
0
 public virtual Scorer Scorer(IndexReader reader)
 {
     return(new SpanScorer(query.GetSpans(reader), this, similarity, reader.Norms(query.GetField())));
 }
 // :NOTE: getBoost and setBoost are not proxied to the maskedQuery
 // ...this is done to be more consistent with thigns like SpanFirstQuery
 public override Spans GetSpans(IndexReader reader)
 {
     return maskedQuery.GetSpans(reader);
 }
示例#11
0
        // :NOTE: getBoost and setBoost are not proxied to the maskedQuery
        // ...this is done to be more consistent with thigns like SpanFirstQuery

        public override Spans GetSpans(IndexReader reader, IState state)
        {
            return(maskedQuery.GetSpans(reader, state));
        }