[ 
https://issues.apache.org/jira/browse/SOLR-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12463695
 ] 

Hoss Man commented on SOLR-99:
------------------------------

specifying the number of results to return as part of the sort information is 
in fact some fairly "legacy" behavior that we probably don't need to worry 
about supporting (i don't think anyone has ever used it in the history of 
Solar/Solr ... but in general i don't think the proper way to address this bug 
is to "assume" a default direction if all the user does is specify a field name 
... mainly because i don't know that we can really assume a particular 
"default" ... failing with an error at query time definitely seems like the 
right behavior to me ... but we should certainly return a usefull eror message 
instead of an ArrayIndexOutOfBoundsException.

In the same way a query which can't be parsed cleanly generates a 
ParseException, a sort specification which can't be parsed cleanly should 
generate a ParseException (or soemthing like it)

> Allow default sort order
> ------------------------
>
>                 Key: SOLR-99
>                 URL: https://issues.apache.org/jira/browse/SOLR-99
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>    Affects Versions: 1.2
>            Reporter: Ryan McKinley
>            Priority: Minor
>             Fix For: 1.2
>
>         Attachments: DefaultSortOrder.patch, DefaultSortOrder.patch
>
>
> The current search throws an "ArrayIndexOutOfBoundsException" if you specify 
> a sort field but do not include an order.  This is anoying and difficult to 
> debug (when you are starting)
> Here is a patch to avoid the exception and use the default sort order if you 
> only specify a field.  I'm not sure the 'null' case was even possible in the 
> current code:
> Index: QueryParsing.java
> ===================================================================
> --- QueryParsing.java (revision 494681)
> +++ QueryParsing.java (working copy)
> @@ -186,13 +186,12 @@
>        }
>  
>        // get the direction of the sort
> -      str=parts[pos];
> -      if ("top".equals(str) || "desc".equals(str)) {
> -        top=true;
> -      } else if ("bottom".equals(str) || "asc".equals(str)) {
> -        top=false;
> -      }  else {
> -        return null;  // must not be a sort command
> +      // by default, top is true, only change it if it is "bottom" or "asc"
> +      if( parts.length > pos ) {
> +       str=parts[pos];
> +       if ("bottom".equals(str) || "asc".equals(str)) {
> +              top=false;
> +           }
>        }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to