public virtual void TestSpans1() { SpanQuery q1 = new SpanTermQuery(new Term("first", "sally")); SpanQuery q2 = new SpanTermQuery(new Term("first", "james")); SpanQuery qA = new SpanOrQuery(new SpanQuery[] { q1, q2 }); SpanQuery qB = new FieldMaskingSpanQuery(qA, "id"); Check(qA, new int[] { 0, 1, 2, 4 }); Check(qB, new int[] { 0, 1, 2, 4 }); Spans spanA = qA.GetSpans(searcher.GetIndexReader()); Spans spanB = qB.GetSpans(searcher.GetIndexReader()); while (spanA.Next()) { Assert.IsTrue(spanB.Next(), "spanB not still going"); Assert.AreEqual(S(spanA), S(spanB), "spanA not equal spanB"); } Assert.IsTrue(!(spanB.Next()), "spanB still going even tough spanA is done"); }
public virtual void TestSpans0() { SpanQuery q1 = new SpanTermQuery(new Term("gender", "female")); SpanQuery q2 = new SpanTermQuery(new Term("first", "james")); SpanQuery q = new SpanOrQuery(new SpanQuery[] { q1, new FieldMaskingSpanQuery(q2, "gender") }); Check(q, new int[] { 0, 1, 2, 3, 4 }); Spans span = q.GetSpans(searcher.GetIndexReader()); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(0, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(1, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(1, 1, 2), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 1, 2), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 2, 3), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(3, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(4, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(4, 1, 2), S(span)); Assert.AreEqual(false, span.Next()); }
public virtual void TestSpans1() { SpanQuery q1 = new SpanTermQuery(new Term("first", "sally")); SpanQuery q2 = new SpanTermQuery(new Term("first", "james")); SpanQuery qA = new SpanOrQuery(new SpanQuery[]{q1, q2}); SpanQuery qB = new FieldMaskingSpanQuery(qA, "id"); Check(qA, new int[]{0, 1, 2, 4}); Check(qB, new int[]{0, 1, 2, 4}); Spans spanA = qA.GetSpans(searcher.GetIndexReader()); Spans spanB = qB.GetSpans(searcher.GetIndexReader()); while (spanA.Next()) { Assert.IsTrue(spanB.Next(), "spanB not still going"); Assert.AreEqual(S(spanA), S(spanB), "spanA not equal spanB"); } Assert.IsTrue(!(spanB.Next()), "spanB still going even tough spanA is done"); }
public virtual void TestSpans0() { SpanQuery q1 = new SpanTermQuery(new Term("gender", "female")); SpanQuery q2 = new SpanTermQuery(new Term("first", "james")); SpanQuery q = new SpanOrQuery(new SpanQuery[]{q1, new FieldMaskingSpanQuery(q2, "gender")}); Check(q, new int[]{0, 1, 2, 3, 4}); Spans span = q.GetSpans(searcher.GetIndexReader()); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(0, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(1, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(1, 1, 2), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 1, 2), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(2, 2, 3), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(3, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(4, 0, 1), S(span)); Assert.AreEqual(true, span.Next()); Assert.AreEqual(S(4, 1, 2), S(span)); Assert.AreEqual(false, span.Next()); }