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:15:16 UTC
svn commit: r1352250 - in /lucene/dev/trunk/solr/core/src:
java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
test/org/apache/solr/search/TestExtendedDismaxParser.java
Author: erick
Date: Wed Jun 20 18:15:15 2012
New Revision: 1352250
URL: http://svn.apache.org/viewvc?rev=1352250&view=rev
Log:
Fix for Solr 3453
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java?rev=1352250&r1=1352249&r2=1352250&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java Wed Jun 20 18:15:15 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/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1352250&r1=1352249&r2=1352250&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Wed Jun 20 18:15:15 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() {