You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2012/06/20 20:12:39 UTC

svn commit: r1352249 - in /lucene/dev/branches/branch_4x/solr/core/src: java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java test/org/apache/solr/search/TestExtendedDismaxParser.java

Author: erick
Date: Wed Jun 20 18:12:39 2012
New Revision: 1352249

URL: http://svn.apache.org/viewvc?rev=1352249&view=rev
Log:
Fix for Solr 3453

Modified:
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java?rev=1352249&r1=1352248&r2=1352249&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java Wed Jun 20 18:12:39 2012
@@ -226,7 +226,7 @@ class ExtendedDismaxQParser extends QPar
         Clause clause = clauses.get(i);
         String s = clause.raw;
         // and and or won't be operators at the start or end
-        if (i>0 && i+1<clauses.size()) {
+        if (lowercaseOperators && i>0 && i+1<clauses.size()) {
           if ("AND".equalsIgnoreCase(s)) {
             s="AND";
           } else if ("OR".equalsIgnoreCase(s)) {

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1352249&r1=1352248&r2=1352249&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Wed Jun 20 18:12:39 2012
@@ -66,6 +66,39 @@ public class TestExtendedDismaxParser ex
     // the super classes version
     super.tearDown();
   }
+  
+
+  public void testLowercaseOperators() {
+    assertQ("Upper case operator",
+        req("q","Zapp AND Brannigan",
+            "qf", "name",
+            "lowercaseOperators", "false",
+            "defType","edismax")
+        ,"*[count(//doc)=1]");
+    
+    assertQ("Upper case operator, allow lowercase",
+        req("q","Zapp AND Brannigan",
+            "qf", "name",
+            "lowercaseOperators", "true",
+            "defType","edismax")
+        ,"*[count(//doc)=1]");
+    
+    assertQ("Lower case operator, don't allow lowercase operators",
+        req("q","Zapp and Brannigan",
+            "qf", "name",
+            "q.op", "AND", 
+            "lowercaseOperators", "false",
+            "defType","edismax")
+        ,"*[count(//doc)=0]");
+    
+    assertQ("Lower case operator, allow lower case operators",
+        req("q","Zapp and Brannigan",
+            "qf", "name",
+            "q.op", "AND", 
+            "lowercaseOperators", "true",
+            "defType","edismax")
+        ,"*[count(//doc)=1]");
+  }
     
   // test the edismax query parser based on the dismax parser
   public void testFocusQueryParser() {