Example #1
0
 public NearSpansOrdered(SpanNearQuery spanNearQuery, IndexReader reader, bool collectPayloads)
 {
     InitBlock();
     if (spanNearQuery.GetClauses().Length < 2)
     {
         throw new System.ArgumentException("Less than 2 clauses: " + spanNearQuery);
     }
     this.collectPayloads = collectPayloads;
     allowedSlop          = spanNearQuery.GetSlop();
     SpanQuery[] clauses = spanNearQuery.GetClauses();
     subSpans      = new Spans[clauses.Length];
     matchPayload  = new System.Collections.Generic.List <byte[]>();
     subSpansByDoc = new Spans[clauses.Length];
     for (int i = 0; i < clauses.Length; i++)
     {
         subSpans[i]      = clauses[i].GetSpans(reader);
         subSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
     }
     query = spanNearQuery;              // kept for toString() only.
 }
Example #2
0
        public NearSpansUnordered(SpanNearQuery query, IndexReader reader)
        {
            this.query = query;
            this.slop  = query.GetSlop();

            SpanQuery[] clauses = query.GetClauses();
            queue    = new CellQueue(this, clauses.Length);
            subSpans = new Spans[clauses.Length];
            for (int i = 0; i < clauses.Length; i++)
            {
                SpansCell cell = new SpansCell(this, clauses[i].GetSpans(reader), i);
                ordered.Add(cell);
                subSpans[i] = cell.spans;
            }
        }
Example #3
0
		public NearSpansOrdered(SpanNearQuery spanNearQuery, IndexReader reader, bool collectPayloads)
		{
			InitBlock();
			if (spanNearQuery.GetClauses().Length < 2)
			{
				throw new System.ArgumentException("Less than 2 clauses: " + spanNearQuery);
			}
			this.collectPayloads = collectPayloads;
			allowedSlop = spanNearQuery.GetSlop();
			SpanQuery[] clauses = spanNearQuery.GetClauses();
			subSpans = new Spans[clauses.Length];
			matchPayload = new System.Collections.Generic.List<byte[]>();
			subSpansByDoc = new Spans[clauses.Length];
			for (int i = 0; i < clauses.Length; i++)
			{
				subSpans[i] = clauses[i].GetSpans(reader);
				subSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
			}
			query = spanNearQuery; // kept for toString() only.
		}
Example #4
0
		public NearSpansUnordered(SpanNearQuery query, IndexReader reader)
		{
			this.query = query;
			this.slop = query.GetSlop();
			
			SpanQuery[] clauses = query.GetClauses();
			queue = new CellQueue(this, clauses.Length);
			subSpans = new Spans[clauses.Length];
			for (int i = 0; i < clauses.Length; i++)
			{
				SpansCell cell = new SpansCell(this, clauses[i].GetSpans(reader), i);
				ordered.Add(cell);
				subSpans[i] = cell.spans;
			}
		}