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

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

the problem with a default sort order (which ANSI SQL does wrong in my opinion) 
is that it can lead to "buggy" behavior without making it clear to the user 
what happened ... users can test their app, get results, and those results 
might look like they are in the correct order because of the nature of the data 
(ie: they sort by popularity and all documents currently have no popularity 
because their application isn't live yet) and only later do they discover that 
it's acctually "defaulting" and the default isn't what they want.

as for the legacy format: if it's not hurting anything, i don't see any reason 
to remove it.  if it's easy to catch the ArrayIndexOutOfBoundsException and 
rethrow a better aexception without gutting the legacy parsing code, we might 
as well leave it in.

if that parsing code is buggy and would require a lot of additional work to get 
it's parsing/error handling equally robust, then purning it is probably fine.

> 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