You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2009/08/10 15:54:07 UTC
svn commit: r802794 - in /lucene/java/trunk/contrib/queryparser/src:
java/org/apache/lucene/queryParser/standard/config/
test/org/apache/lucene/queryParser/standard/
Author: mikemccand
Date: Mon Aug 10 13:54:06 2009
New Revision: 802794
URL: http://svn.apache.org/viewvc?rev=802794&view=rev
Log:
LUCENE-1795: disable leading wildcard by default in new QueryParser, matching 2.4
Modified:
lucene/java/trunk/contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java
lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java
lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java
Modified: lucene/java/trunk/contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java?rev=802794&r1=802793&r2=802794&view=diff
==============================================================================
--- lucene/java/trunk/contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java (original)
+++ lucene/java/trunk/contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/config/AllowLeadingWildcardAttributeImpl.java Mon Aug 10 13:54:06 2009
@@ -33,11 +33,7 @@
private static final long serialVersionUID = -2804763012723049527L;
- private boolean allowLeadingWildcard = true;
-
- public AllowLeadingWildcardAttributeImpl() {
- allowLeadingWildcard = true; // default in 2.4
- }
+ private boolean allowLeadingWildcard = false; // default in 2.9
public void setAllowLeadingWildcard(boolean allowLeadingWildcard) {
this.allowLeadingWildcard = allowLeadingWildcard;
Modified: lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java?rev=802794&r1=802793&r2=802794&view=diff
==============================================================================
--- lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java (original)
+++ lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java Mon Aug 10 13:54:06 2009
@@ -222,6 +222,12 @@
return getParser(a).parse(query, "field");
}
+ public Query getQueryAllowLeadingWildcard(String query, Analyzer a) throws Exception {
+ StandardQueryParser parser = getParser(a);
+ parser.setAllowLeadingWildcard(true);
+ return parser.parse(query, "field");
+ }
+
public void assertQueryEquals(String query, Analyzer a, String result)
throws Exception {
Query q = getQuery(query, a);
@@ -232,6 +238,16 @@
}
}
+ public void assertQueryEqualsAllowLeadingWildcard(String query, Analyzer a, String result)
+ throws Exception {
+ Query q = getQueryAllowLeadingWildcard(query, a);
+ String s = q.toString("field");
+ if (!s.equals(result)) {
+ fail("Query /" + query + "/ yielded /" + s + "/, expecting /" + result
+ + "/");
+ }
+ }
+
public void assertQueryEquals(StandardQueryParser qp, String field,
String query, String result) throws Exception {
Query q = qp.parse(query, field);
@@ -306,7 +322,7 @@
// used google to translate the word "term" to japanese -> ??
assertQueryEquals("term\u3000term\u3000term", null,
"term\u0020term\u0020term");
- assertQueryEquals("??\u3000??\u3000??", null, "??\u0020??\u0020??");
+ assertQueryEqualsAllowLeadingWildcard("??\u3000??\u3000??", null, "??\u0020??\u0020??");
}
public void testSimple() throws Exception {
@@ -910,6 +926,7 @@
assertQueryNodeException("field:term:with:colon some more terms");
assertQueryNodeException("(sub query)^5.0^2.0 plus more");
assertQueryNodeException("secret AND illegal) AND access:confidential");
+ assertQueryNodeException("*leadingWildcard"); // disallowed by default
}
public void testCustomQueryParserWildcard() {
Modified: lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java?rev=802794&r1=802793&r2=802794&view=diff
==============================================================================
--- lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java (original)
+++ lucene/java/trunk/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java Mon Aug 10 13:54:06 2009
@@ -230,6 +230,12 @@
return getParser(a).parse(query);
}
+ public Query getQueryAllowLeadingWildcard(String query, Analyzer a) throws Exception {
+ QueryParserWrapper parser = getParser(a);
+ parser.setAllowLeadingWildcard(true);
+ return parser.parse(query);
+ }
+
public void assertQueryEquals(String query, Analyzer a, String result)
throws Exception {
Query q = getQuery(query, a);
@@ -240,6 +246,15 @@
}
}
+ public void assertQueryEqualsAllowLeadingWildcard(String query, Analyzer a, String result)
+ throws Exception {
+ Query q = getQueryAllowLeadingWildcard(query, a);
+ String s = q.toString("field");
+ if (!s.equals(result)) {
+ fail("Query /" + query + "/ yielded /" + s + "/, expecting /" + result
+ + "/");
+ }
+ }
public void assertQueryEquals(QueryParserWrapper qp, String field,
String query, String result) throws Exception {
Query q = qp.parse(query);
@@ -311,7 +326,7 @@
// used google to translate the word "term" to japanese -> ??
assertQueryEquals("term\u3000term\u3000term", null,
"term\u0020term\u0020term");
- assertQueryEquals("??\u3000??\u3000??", null, "??\u0020??\u0020??");
+ assertQueryEqualsAllowLeadingWildcard("??\u3000??\u3000??", null, "??\u0020??\u0020??");
}
public void testSimple() throws Exception {