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 {