You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2015/04/12 20:28:05 UTC
svn commit: r1673037 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/spans/
lucene/core/src/test/org/apache/lucene/search/spans/ lucene/test-framework/
lucene/test-framework/src/java/org/apache...
Author: rmuir
Date: Sun Apr 12 18:28:04 2015
New Revision: 1673037
URL: http://svn.apache.org/r1673037
Log:
LUCENE-6418, LUCENE-6411: add AssertingSpans and fix the bugs it found
Added:
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/search/spans/
- copied from r1673036, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpanSearchEquivalence.java
lucene/dev/branches/branch_5x/lucene/test-framework/ (props changed)
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java?rev=1673037&r1=1673036&r2=1673037&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java Sun Apr 12 18:28:04 2015
@@ -122,25 +122,30 @@ public class SpanNotQuery extends SpanQu
return new FilterSpans(includeSpans) {
// last document we have checked matches() against for the exclusion, and failed
// when using approximations, so we don't call it again, and pass thru all inclusions.
- int lastNonMatchingDoc = -1;
+ int lastApproxDoc = -1;
+ boolean lastApproxResult = false;
@Override
protected AcceptStatus accept(Spans candidate) throws IOException {
+ // TODO: this logic is ugly and sneaky, can we clean it up?
int doc = candidate.docID();
if (doc > excludeSpans.docID()) {
// catch up 'exclude' to the current doc
if (excludeTwoPhase != null) {
if (excludeApproximation.advance(doc) == doc) {
- if (!excludeTwoPhase.matches()) {
- lastNonMatchingDoc = doc; // mark as non-match
- }
+ lastApproxDoc = doc;
+ lastApproxResult = excludeTwoPhase.matches();
}
} else {
excludeSpans.advance(doc);
}
+ } else if (excludeTwoPhase != null && doc == excludeSpans.docID() && doc != lastApproxDoc) {
+ // excludeSpans already sitting on our candidate doc, but matches not called yet.
+ lastApproxDoc = doc;
+ lastApproxResult = excludeTwoPhase.matches();
}
- if (doc == lastNonMatchingDoc || doc != excludeSpans.docID()) {
+ if (doc != excludeSpans.docID() || (doc == lastApproxDoc && lastApproxResult == false)) {
return AcceptStatus.YES;
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java?rev=1673037&r1=1673036&r2=1673037&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java Sun Apr 12 18:28:04 2015
@@ -97,4 +97,16 @@ public abstract class Spans extends DocI
public TwoPhaseIterator asTwoPhaseIterator() {
return null;
}
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ Class<? extends Spans> clazz = getClass();
+ sb.append(clazz.isAnonymousClass() ? clazz.getName() : clazz.getSimpleName());
+ sb.append("(doc=").append(docID());
+ sb.append(",start=").append(startPosition());
+ sb.append(",end=").append(endPosition());
+ sb.append(")");
+ return sb.toString();
+ }
}
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java?rev=1673037&r1=1673036&r2=1673037&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java Sun Apr 12 18:28:04 2015
@@ -341,7 +341,7 @@ public class TestBasics extends LuceneTe
assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
}
- @Test @AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/LUCENE-6418")
+ @Test
public void testNpeInSpanNearInSpanFirstInSpanNot() throws Exception {
int n = 5;
SpanTermQuery hun = new SpanTermQuery(new Term("field", "hundred"));
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpanSearchEquivalence.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpanSearchEquivalence.java?rev=1673037&r1=1673036&r2=1673037&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpanSearchEquivalence.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/spans/TestSpanSearchEquivalence.java Sun Apr 12 18:28:04 2015
@@ -33,11 +33,20 @@ public class TestSpanSearchEquivalence e
// TODO: we could go a little crazy for a lot of these,
// but these are just simple minimal cases in case something
// goes horribly wrong. Put more intense tests elsewhere.
+
+ /** generally wrap with asserting. but not always, so we don't hide bugs */
+ private SpanQuery span(SpanQuery query) {
+ if (random().nextInt(100) <= 95) {
+ return new AssertingSpanQuery(query);
+ } else {
+ return query;
+ }
+ }
/** SpanTermQuery(A) = TermQuery(A) */
public void testSpanTermVersusTerm() throws Exception {
Term t1 = randomTerm();
- assertSameSet(new TermQuery(t1), new SpanTermQuery(t1));
+ assertSameSet(new TermQuery(t1), span(new SpanTermQuery(t1)));
}
/** SpanOrQuery(A, B) = (A B) */
@@ -47,7 +56,7 @@ public class TestSpanSearchEquivalence e
BooleanQuery q1 = new BooleanQuery();
q1.add(new TermQuery(t1), Occur.SHOULD);
q1.add(new TermQuery(t2), Occur.SHOULD);
- SpanOrQuery q2 = new SpanOrQuery(new SpanTermQuery(t1), new SpanTermQuery(t2));
+ SpanQuery q2 = span(new SpanOrQuery(span(new SpanTermQuery(t1)), span(new SpanTermQuery(t2))));
assertSameSet(q1, q2);
}
@@ -55,7 +64,8 @@ public class TestSpanSearchEquivalence e
public void testSpanNotVersusSpanTerm() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- assertSubsetOf(new SpanNotQuery(new SpanTermQuery(t1), new SpanTermQuery(t2)), new SpanTermQuery(t1));
+ assertSubsetOf(span(new SpanNotQuery(span(new SpanTermQuery(t1)), span(new SpanTermQuery(t2)))),
+ span(new SpanTermQuery(t1)));
}
/** SpanNotQuery(A, [B C]) â SpanTermQuery(A) */
@@ -63,8 +73,11 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
Term t2 = randomTerm();
Term t3 = randomTerm();
- SpanQuery near = new SpanNearQuery(new SpanQuery[] { new SpanTermQuery(t2), new SpanTermQuery(t3) }, 10, random().nextBoolean());
- assertSubsetOf(new SpanNotQuery(new SpanTermQuery(t1), near), new SpanTermQuery(t1));
+ SpanQuery near = span(new SpanNearQuery(new SpanQuery[] {
+ span(new SpanTermQuery(t2)),
+ span(new SpanTermQuery(t3))
+ }, 10, random().nextBoolean()));
+ assertSubsetOf(span(new SpanNotQuery(span(new SpanTermQuery(t1)), near)), span(new SpanTermQuery(t1)));
}
/** SpanNotQuery([A B], C) â SpanNearQuery([A B]) */
@@ -72,8 +85,11 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
Term t2 = randomTerm();
Term t3 = randomTerm();
- SpanQuery near = new SpanNearQuery(new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) }, 10, random().nextBoolean());
- assertSubsetOf(new SpanNotQuery(near, new SpanTermQuery(t3)), near);
+ SpanQuery near = span(new SpanNearQuery(new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ }, 10, random().nextBoolean()));
+ assertSubsetOf(span(new SpanNotQuery(near, span(new SpanTermQuery(t3)))), near);
}
/** SpanNotQuery([A B], [C D]) â SpanNearQuery([A B]) */
@@ -82,23 +98,33 @@ public class TestSpanSearchEquivalence e
Term t2 = randomTerm();
Term t3 = randomTerm();
Term t4 = randomTerm();
- SpanQuery near1 = new SpanNearQuery(new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) }, 10, random().nextBoolean());
- SpanQuery near2 = new SpanNearQuery(new SpanQuery[] { new SpanTermQuery(t3), new SpanTermQuery(t4) }, 10, random().nextBoolean());
- assertSubsetOf(new SpanNotQuery(near1, near2), near1);
+ SpanQuery near1 = span(new SpanNearQuery(new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ }, 10, random().nextBoolean()));
+ SpanQuery near2 = span(new SpanNearQuery(new SpanQuery[] {
+ span(new SpanTermQuery(t3)),
+ span(new SpanTermQuery(t4))
+ }, 10, random().nextBoolean()));
+ assertSubsetOf(span(new SpanNotQuery(near1, near2)), near1);
}
/** SpanFirstQuery(A, 10) â SpanTermQuery(A) */
public void testSpanFirstVersusSpanTerm() throws Exception {
Term t1 = randomTerm();
- assertSubsetOf(new SpanFirstQuery(new SpanTermQuery(t1), 10), new SpanTermQuery(t1));
+ assertSubsetOf(span(new SpanFirstQuery(span(new SpanTermQuery(t1)), 10)),
+ span(new SpanTermQuery(t1)));
}
/** SpanNearQuery([A, B], 0, true) = "A B" */
public void testSpanNearVersusPhrase() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanNearQuery q1 = new SpanNearQuery(subquery, 0, true);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery q1 = span(new SpanNearQuery(subquery, 0, true));
PhraseQuery q2 = new PhraseQuery();
q2.add(t1);
q2.add(t2);
@@ -109,8 +135,11 @@ public class TestSpanSearchEquivalence e
public void testSpanNearVersusBooleanAnd() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanNearQuery q1 = new SpanNearQuery(subquery, Integer.MAX_VALUE, false);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery q1 = span(new SpanNearQuery(subquery, Integer.MAX_VALUE, false));
BooleanQuery q2 = new BooleanQuery();
q2.add(new TermQuery(t1), Occur.MUST);
q2.add(new TermQuery(t2), Occur.MUST);
@@ -121,9 +150,12 @@ public class TestSpanSearchEquivalence e
public void testSpanNearVersusSloppySpanNear() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanNearQuery q1 = new SpanNearQuery(subquery, 0, false);
- SpanNearQuery q2 = new SpanNearQuery(subquery, 1, false);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery q1 = span(new SpanNearQuery(subquery, 0, false));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, 1, false));
assertSubsetOf(q1, q2);
}
@@ -131,9 +163,12 @@ public class TestSpanSearchEquivalence e
public void testSpanNearInOrderVersusOutOfOrder() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanNearQuery q1 = new SpanNearQuery(subquery, 3, true);
- SpanNearQuery q2 = new SpanNearQuery(subquery, 3, false);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery q1 = span(new SpanNearQuery(subquery, 3, true));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, 3, false));
assertSubsetOf(q1, q2);
}
@@ -141,10 +176,13 @@ public class TestSpanSearchEquivalence e
public void testSpanNearIncreasingSloppiness() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
for (int i = 0; i < 10; i++) {
- SpanNearQuery q1 = new SpanNearQuery(subquery, i, false);
- SpanNearQuery q2 = new SpanNearQuery(subquery, i+1, false);
+ SpanQuery q1 = span(new SpanNearQuery(subquery, i, false));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, i+1, false));
assertSubsetOf(q1, q2);
}
}
@@ -154,10 +192,14 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
Term t2 = randomTerm();
Term t3 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2), new SpanTermQuery(t3) };
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2)),
+ span(new SpanTermQuery(t3))
+ };
for (int i = 0; i < 10; i++) {
- SpanNearQuery q1 = new SpanNearQuery(subquery, i, false);
- SpanNearQuery q2 = new SpanNearQuery(subquery, i+1, false);
+ SpanQuery q1 = span(new SpanNearQuery(subquery, i, false));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, i+1, false));
assertSubsetOf(q1, q2);
}
}
@@ -166,10 +208,13 @@ public class TestSpanSearchEquivalence e
public void testSpanNearIncreasingOrderedSloppiness() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
for (int i = 0; i < 10; i++) {
- SpanNearQuery q1 = new SpanNearQuery(subquery, i, false);
- SpanNearQuery q2 = new SpanNearQuery(subquery, i+1, false);
+ SpanQuery q1 = span(new SpanNearQuery(subquery, i, false));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, i+1, false));
assertSubsetOf(q1, q2);
}
}
@@ -179,10 +224,14 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
Term t2 = randomTerm();
Term t3 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2), new SpanTermQuery(t3) };
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2)),
+ span(new SpanTermQuery(t3))
+ };
for (int i = 0; i < 10; i++) {
- SpanNearQuery q1 = new SpanNearQuery(subquery, i, true);
- SpanNearQuery q2 = new SpanNearQuery(subquery, i+1, true);
+ SpanQuery q1 = span(new SpanNearQuery(subquery, i, true));
+ SpanQuery q2 = span(new SpanNearQuery(subquery, i+1, true));
assertSubsetOf(q1, q2);
}
}
@@ -192,7 +241,7 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
- Query q1 = new SpanPositionRangeQuery(new SpanTermQuery(t1), i, i+j);
+ Query q1 = span(new SpanPositionRangeQuery(span(new SpanTermQuery(t1)), i, i+j));
Query q2 = new TermQuery(t1);
assertSubsetOf(q1, q2);
}
@@ -204,8 +253,8 @@ public class TestSpanSearchEquivalence e
Term t1 = randomTerm();
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
- Query q1 = new SpanPositionRangeQuery(new SpanTermQuery(t1), i, i+j);
- Query q2 = new SpanPositionRangeQuery(new SpanTermQuery(t1), i, i+j+1);
+ Query q1 = span(new SpanPositionRangeQuery(span(new SpanTermQuery(t1)), i, i+j));
+ Query q2 = span(new SpanPositionRangeQuery(span(new SpanTermQuery(t1)), i, i+j+1));
assertSubsetOf(q1, q2);
}
}
@@ -214,7 +263,7 @@ public class TestSpanSearchEquivalence e
/** SpanPositionRangeQuery(A, 0, â) = TermQuery(A) */
public void testSpanRangeTermEverything() throws Exception {
Term t1 = randomTerm();
- Query q1 = new SpanPositionRangeQuery(new SpanTermQuery(t1), 0, Integer.MAX_VALUE);
+ Query q1 = span(new SpanPositionRangeQuery(span(new SpanTermQuery(t1)), 0, Integer.MAX_VALUE));
Query q2 = new TermQuery(t1);
assertSameSet(q1, q2);
}
@@ -223,11 +272,14 @@ public class TestSpanSearchEquivalence e
public void testSpanRangeNear() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
- Query q1 = new SpanPositionRangeQuery(nearQuery, i, i+j);
+ Query q1 = span(new SpanPositionRangeQuery(nearQuery, i, i+j));
Query q2 = nearQuery;
assertSubsetOf(q1, q2);
}
@@ -238,12 +290,15 @@ public class TestSpanSearchEquivalence e
public void testSpanRangeNearIncreasingEnd() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
- Query q1 = new SpanPositionRangeQuery(nearQuery, i, i+j);
- Query q2 = new SpanPositionRangeQuery(nearQuery, i, i+j+1);
+ Query q1 = span(new SpanPositionRangeQuery(nearQuery, i, i+j));
+ Query q2 = span(new SpanPositionRangeQuery(nearQuery, i, i+j+1));
assertSubsetOf(q1, q2);
}
}
@@ -253,9 +308,12 @@ public class TestSpanSearchEquivalence e
public void testSpanRangeNearEverything() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
- Query q1 = new SpanPositionRangeQuery(nearQuery, 0, Integer.MAX_VALUE);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
+ Query q1 = span(new SpanPositionRangeQuery(nearQuery, 0, Integer.MAX_VALUE));
Query q2 = nearQuery;
assertSameSet(q1, q2);
}
@@ -264,7 +322,7 @@ public class TestSpanSearchEquivalence e
public void testSpanFirstTerm() throws Exception {
Term t1 = randomTerm();
for (int i = 0; i < 10; i++) {
- Query q1 = new SpanFirstQuery(new SpanTermQuery(t1), i);
+ Query q1 = span(new SpanFirstQuery(span(new SpanTermQuery(t1)), i));
Query q2 = new TermQuery(t1);
assertSubsetOf(q1, q2);
}
@@ -274,8 +332,8 @@ public class TestSpanSearchEquivalence e
public void testSpanFirstTermIncreasing() throws Exception {
Term t1 = randomTerm();
for (int i = 0; i < 10; i++) {
- Query q1 = new SpanFirstQuery(new SpanTermQuery(t1), i);
- Query q2 = new SpanFirstQuery(new SpanTermQuery(t1), i+1);
+ Query q1 = span(new SpanFirstQuery(span(new SpanTermQuery(t1)), i));
+ Query q2 = span(new SpanFirstQuery(span(new SpanTermQuery(t1)), i+1));
assertSubsetOf(q1, q2);
}
}
@@ -283,7 +341,7 @@ public class TestSpanSearchEquivalence e
/** SpanFirstQuery(A, â) = TermQuery(A) */
public void testSpanFirstTermEverything() throws Exception {
Term t1 = randomTerm();
- Query q1 = new SpanFirstQuery(new SpanTermQuery(t1), Integer.MAX_VALUE);
+ Query q1 = span(new SpanFirstQuery(span(new SpanTermQuery(t1)), Integer.MAX_VALUE));
Query q2 = new TermQuery(t1);
assertSameSet(q1, q2);
}
@@ -292,10 +350,13 @@ public class TestSpanSearchEquivalence e
public void testSpanFirstNear() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
for (int i = 0; i < 10; i++) {
- Query q1 = new SpanFirstQuery(nearQuery, i);
+ Query q1 = span(new SpanFirstQuery(nearQuery, i));
Query q2 = nearQuery;
assertSubsetOf(q1, q2);
}
@@ -305,11 +366,14 @@ public class TestSpanSearchEquivalence e
public void testSpanFirstNearIncreasing() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
for (int i = 0; i < 10; i++) {
- Query q1 = new SpanFirstQuery(nearQuery, i);
- Query q2 = new SpanFirstQuery(nearQuery, i+1);
+ Query q1 = span(new SpanFirstQuery(nearQuery, i));
+ Query q2 = span(new SpanFirstQuery(nearQuery, i+1));
assertSubsetOf(q1, q2);
}
}
@@ -318,9 +382,12 @@ public class TestSpanSearchEquivalence e
public void testSpanFirstNearEverything() throws Exception {
Term t1 = randomTerm();
Term t2 = randomTerm();
- SpanQuery subquery[] = new SpanQuery[] { new SpanTermQuery(t1), new SpanTermQuery(t2) };
- SpanQuery nearQuery = new SpanNearQuery(subquery, 10, true);
- Query q1 = new SpanFirstQuery(nearQuery, Integer.MAX_VALUE);
+ SpanQuery subquery[] = new SpanQuery[] {
+ span(new SpanTermQuery(t1)),
+ span(new SpanTermQuery(t2))
+ };
+ SpanQuery nearQuery = span(new SpanNearQuery(subquery, 10, true));
+ Query q1 = span(new SpanFirstQuery(nearQuery, Integer.MAX_VALUE));
Query q2 = nearQuery;
assertSameSet(q1, q2);
}