Ejemplo n.º 1
0
        public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, IBits acceptDocs, IDictionary <Term, TermContext> termContexts, bool collectPayloads)
        {
            // LUCENENET: Added guard clauses for null
            if (spanNearQuery is null)
            {
                throw new ArgumentNullException(nameof(spanNearQuery));
            }

            sorter = new InPlaceMergeSorterAnonymousClass(this);
            if (spanNearQuery.GetClauses().Length < 2)
            {
                throw new ArgumentException("Less than 2 clauses: " + spanNearQuery);
            }
            this.collectPayloads = collectPayloads;
            allowedSlop          = spanNearQuery.Slop;
            SpanQuery[] clauses = spanNearQuery.GetClauses();
            subSpans      = new Spans[clauses.Length];
            matchPayload  = new List <byte[]>();
            subSpansByDoc = new Spans[clauses.Length];
            for (int i = 0; i < clauses.Length; i++)
            {
                subSpans[i]      = clauses[i].GetSpans(context, acceptDocs, termContexts);
                subSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
            }
            query = spanNearQuery;              // kept for toString() only.
        }
Ejemplo n.º 2
0
 public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, IDictionary <Term, TermContext> termContexts, bool collectPayloads)
 {
     sorter = new InPlaceMergeSorterAnonymousInnerClassHelper(this);
     if (spanNearQuery.Clauses.Length < 2)
     {
         throw new System.ArgumentException("Less than 2 clauses: " + spanNearQuery);
     }
     this.CollectPayloads = collectPayloads;
     AllowedSlop          = spanNearQuery.Slop;
     SpanQuery[] clauses = spanNearQuery.Clauses;
     subSpans      = new Spans[clauses.Length];
     MatchPayload  = new List <byte[]>();
     SubSpansByDoc = new Spans[clauses.Length];
     for (int i = 0; i < clauses.Length; i++)
     {
         subSpans[i]      = clauses[i].GetSpans(context, acceptDocs, termContexts);
         SubSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
     }
     Query = spanNearQuery;              // kept for toString() only.
 }
Ejemplo n.º 3
0
 public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, Bits acceptDocs, IDictionary<Term, TermContext> termContexts, bool collectPayloads)
 {
     sorter = new InPlaceMergeSorterAnonymousInnerClassHelper(this);
     if (spanNearQuery.Clauses.Length < 2)
     {
         throw new System.ArgumentException("Less than 2 clauses: " + spanNearQuery);
     }
     this.CollectPayloads = collectPayloads;
     AllowedSlop = spanNearQuery.Slop;
     SpanQuery[] clauses = spanNearQuery.Clauses;
     subSpans = new Spans[clauses.Length];
     MatchPayload = new List<byte[]>();
     SubSpansByDoc = new Spans[clauses.Length];
     for (int i = 0; i < clauses.Length; i++)
     {
         subSpans[i] = clauses[i].GetSpans(context, acceptDocs, termContexts);
         SubSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
     }
     Query = spanNearQuery; // kept for toString() only.
 }