You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2013/03/02 00:17:37 UTC

svn commit: r1451765 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/search/QueryParsing.java core/src/test/org/apache/solr/search/QueryParsingTest.java

Author: hossman
Date: Fri Mar  1 23:17:37 2013
New Revision: 1451765

URL: http://svn.apache.org/r1451765
Log:
SOLR-4458: Sort directions (asc, desc) are now case insensitive

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1451765&r1=1451764&r2=1451765&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Mar  1 23:17:37 2013
@@ -250,6 +250,9 @@ Other Changes
 
 * SOLR-4511: Add new test for 'repeater' replication node. (Mark Miller)
 
+* SOLR-4458: Sort directions (asc, desc) are now case insensitive
+  (Shawn Heisey via hossman)
+
 ==================  4.1.0 ==================
 
 Versions of Major Components

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java?rev=1451765&r1=1451764&r2=1451765&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java Fri Mar  1 23:17:37 2013
@@ -46,6 +46,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -788,7 +789,7 @@ public class QueryParsing {
     }
 
     /**
-     * Sort direction or null if current position does not inidcate a 
+     * Sort direction or null if current position does not indicate a 
      * sort direction. (True is desc, False is asc).  
      * Position is advanced to after the comma (or end) when result is non null 
      */
@@ -799,9 +800,10 @@ public class QueryParsing {
       Boolean top = null;
 
       if (null != order) {
-        if ("desc".equals(order) || "top".equals(order)) {
+        final String orderLowerCase = order.toLowerCase(Locale.ROOT);
+        if ("desc".equals(orderLowerCase) || "top".equals(orderLowerCase)) {
           top = true;
-        } else if ("asc".equals(order) || "bottom".equals(order)) {
+        } else if ("asc".equals(orderLowerCase) || "bottom".equals(orderLowerCase)) {
           top = false;
         }
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java?rev=1451765&r1=1451764&r2=1451765&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java Fri Mar  1 23:17:37 2013
@@ -79,17 +79,18 @@ public class QueryParsingTest extends So
     sort = QueryParsing.parseSort("score desc", req);
     assertNull("sort", sort);//only 1 thing in the list, no Sort specified
 
-    sort = QueryParsing.parseSort("score asc", req);
+    // SOLR-4458 - using different case variations of asc and desc
+    sort = QueryParsing.parseSort("score aSc", req);
     SortField[] flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.SCORE);
     assertTrue(flds[0].getReverse());
 
-    sort = QueryParsing.parseSort("weight desc", req);
+    sort = QueryParsing.parseSort("weight dEsC", req);
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
     assertEquals(flds[0].getReverse(), true);
-    sort = QueryParsing.parseSort("weight desc,bday asc", req);
+    sort = QueryParsing.parseSort("weight desc,bday ASC", req);
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
@@ -116,7 +117,7 @@ public class QueryParsingTest extends So
     assertEquals(flds[1].getReverse(), false);
 
     //test weird spacing
-    sort = QueryParsing.parseSort("weight         desc,            bday         asc", req);
+    sort = QueryParsing.parseSort("weight         DESC,            bday         asc", req);
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");