You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2012/11/13 12:38:27 UTC
svn commit: r1408683 - in /lucene/dev/branches/LUCENE-2878/lucene/core/src:
java/org/apache/lucene/search/intervals/
test/org/apache/lucene/search/intervals/
Author: romseygeek
Date: Tue Nov 13 11:38:26 2012
New Revision: 1408683
URL: http://svn.apache.org/viewvc?rev=1408683&view=rev
Log:
LUCENE-2878: Fix UnorderedNearQuery to correctly take into account match length; other test bugs
Modified:
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/UnorderedNearQuery.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/UnorderedNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/UnorderedNearQuery.java?rev=1408683&r1=1408682&r2=1408683&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/UnorderedNearQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/UnorderedNearQuery.java Tue Nov 13 11:38:26 2012
@@ -43,7 +43,7 @@ public class UnorderedNearQuery extends
* @param subqueries the subqueries to match.
*/
public UnorderedNearQuery(int slop, boolean collectLeaves, Query... subqueries) {
- super(buildBooleanQuery(subqueries), new WithinIntervalFilter(slop, collectLeaves));
+ super(buildBooleanQuery(subqueries), new WithinIntervalFilter(slop + subqueries.length - 2, collectLeaves));
}
/**
@@ -52,7 +52,7 @@ public class UnorderedNearQuery extends
* @param subqueries the subqueries to match.
*/
public UnorderedNearQuery(int slop, Query... subqueries) {
- super(buildBooleanQuery(subqueries), new WithinIntervalFilter(slop, true));
+ this(slop, true, subqueries);
}
private static BooleanQuery buildBooleanQuery(Query... queries) {
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java?rev=1408683&r1=1408682&r2=1408683&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java Tue Nov 13 11:38:26 2012
@@ -177,21 +177,34 @@ public class TestBasicIntervals extends
{ 10, 0, 1 }
});
}
+ /*
+ "w1 w2 w3 w4 w5", //0
+ "w1 w3 w2 w3",//1
+ "w1 xx w2 yy w3",//2
+ "w1 w3 xx w2 yy w3",//3
+ "u2 u2 u1", //4
+ "u2 xx u2 u1",//5
+ "u2 u2 xx u1", //6
+ "u2 xx u2 yy u1", //7
+ "u2 xx u1 u2",//8
+ "u1 u2 xx u2",//9
+ "u2 u1 xx u2",//10
+ "t1 t2 t1 t3 t2 t3"};//11
+ */
- // ((u1 near u2) near u2)
+ // ((u1 near u2) near xx)
public void testNestedNear() throws Exception {
- Query q = new OrderedNearQuery(0, false, makeTermQuery("u1"), makeTermQuery("u2"));
+ Query q = new UnorderedNearQuery(0, false, makeTermQuery("u1"), makeTermQuery("u2"));
BooleanQuery topq = new BooleanQuery();
topq.add(q, Occur.MUST);
- topq.add(makeTermQuery("u2"), Occur.MUST);
+ topq.add(makeTermQuery("xx"), Occur.MUST);
checkIntervals(topq, searcher, new int[][]{
- { 4, 1, 2 },
- { 5, 2, 3 },
- { 8, 2, 3 },
- { 9, 0, 1 },
- { 10, 0, 1 }
+ { 5, 1, 3, 1, 1, 2, 3 },
+ { 8, 1, 3, 1, 1, 2, 3 },
+ { 9, 0, 2, 0, 1, 2, 2 },
+ { 10, 0, 2, 0, 1, 2, 2 }
});
}
@@ -199,24 +212,32 @@ public class TestBasicIntervals extends
public void testOrSingle() throws Exception {
Query q = makeOrQuery(makeTermQuery("w5"));
checkIntervals(q, searcher, new int[][]{
- { 0, 4, 5 }
+ { 0, 4, 4 }
});
}
-
+
public void testOrPartialMatch() throws Exception {
Query q = makeOrQuery(makeTermQuery("w5"), makeTermQuery("xx"));
checkIntervals(q, searcher, new int[][]{
- { 0, 4, 5 }
+ { 0, 4, 4 },
+ { 2, 1, 1 },
+ { 3, 2, 2 },
+ { 5, 1, 1 },
+ { 6, 2, 2 },
+ { 7, 1, 1 },
+ { 8, 1, 1 },
+ { 9, 2, 2 },
+ { 10, 2, 2 },
});
}
public void testOrDisjunctionMatch() throws Exception {
Query q = makeOrQuery(makeTermQuery("w5"), makeTermQuery("yy"));
checkIntervals(q, searcher, new int[][]{
- { 0, 4, 5 },
- { 2, 3, 4 },
- { 3, 4, 5 },
- { 7, 3, 4 }
+ { 0, 4, 4 },
+ { 2, 3, 3 },
+ { 3, 4, 4 },
+ { 7, 3, 3 }
});
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java?rev=1408683&r1=1408682&r2=1408683&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java Tue Nov 13 11:38:26 2012
@@ -73,7 +73,7 @@ public class TestConjunctionIntervalIter
Query q = new UnorderedNearQuery(0, false, makeTermQuery("pease"),
makeTermQuery("porridge"), makeTermQuery("hot!"));
checkIntervals(q, searcher, new int[][]{
- { 0, 0, 2, 1, 3, 2, 4, 31, 33, 32, 24, 33, 35 },
+ { 0, 0, 2, 1, 3, 2, 4, 31, 33, 32, 34, 33, 35 },
{ 1, 3, 5, 4, 6, 5, 7, 34, 36 }
});
}