You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Judith Silverman (JIRA)" <ji...@apache.org> on 2016/12/01 00:33:58 UTC

[jira] [Comment Edited] (SOLR-6203) cast exception while searching with sort function and result grouping

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

Judith Silverman edited comment on SOLR-6203 at 12/1/16 12:33 AM:
------------------------------------------------------------------

Thanks for the update, Christine.  I am happy to pursue your incremental approach.  I have made a patch to your branch in which I uncommented a couple of your signature changes and modified calls to the affected methods to use the new signatures.  I also took this opportunity to  start standardizing field and method names related to the field variously known throughout the codebase as "sortWithinGroup" and "withinGroupSort".  The latter fits better with related field and method names, and since we are already deprecating GroupingSpecification's accessors for Sorts in favor of accessors of  SortSpecs, this seems to me like a good time to make the change.  I renamed the new public accessors and also renamed private fields in all the files I was already modifying for this commit.  If you approve of this change, I will rename private fields in other files.  In the meantime, I will keep going in the direction you indicated.                           
Thanks,        
Judith 


was (Author: judith):
Thanks for the update, Christine.  I am happy to pursue your               incremental approach.  I have made a patch to your branch in which I           uncommented your signature changes and modified calls to the affected        methods to use the new signatures.  I also took this opportunity to          start standardizing field and method names related to the field              variously known throughout the codebase as "sortWithinGroup" and             "withinGroupSort".  The latter fits better with related field and            method names, and since we are already deprecating                         GroupingSpecification's accessors for Sorts in favor of accessors of         SortSpecs, this seems to me like a good time to make the change.  I           renamed the new public accessors and also renamed private fields in             all the files I was already modifying for this commit.  If you approve         of this change, I will rename private fields in other files.  In the
meantime, I will start fleshing out utility functions as you indicated.                                                                       
Thanks,        
Judith 

> cast exception while searching with sort function and result grouping
> ---------------------------------------------------------------------
>
>                 Key: SOLR-6203
>                 URL: https://issues.apache.org/jira/browse/SOLR-6203
>             Project: Solr
>          Issue Type: Bug
>          Components: search
>    Affects Versions: 4.7, 4.8
>            Reporter: Nate Dire
>            Assignee: Christine Poerschke
>         Attachments: README, SOLR-6203-unittest.patch, SOLR-6203-unittest.patch, SOLR-6203.patch, SOLR-6203.patch
>
>
> After upgrading from 4.5.1 to 4.7+, a schema including a {{"*"}} dynamic field as text gets a cast exception when using a sort function and result grouping.  
> Repro (with example config):
> # Add {{"*"}} dynamic field as a {{TextField}}, eg:
> {noformat}
> <dynamicField name="*" type="text_general" multiValued="true" />
> {noformat}
> #  Create  sharded collection
> {noformat}
> curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=test&numShards=2&maxShardsPerNode=2'
> {noformat}
> # Add example docs (query must have some results)
> # Submit query which sorts on a function result and uses result grouping:
> {noformat}
> {
>   "responseHeader": {
>     "status": 500,
>     "QTime": 50,
>     "params": {
>       "sort": "sqrt(popularity) desc",
>       "indent": "true",
>       "q": "*:*",
>       "_": "1403709010008",
>       "group.field": "manu",
>       "group": "true",
>       "wt": "json"
>     }
>   },
>   "error": {
>     "msg": "java.lang.Double cannot be cast to org.apache.lucene.util.BytesRef",
>     "code": 500
>   }
> }
> {noformat}
> Source exception from log:
> {noformat}
> ERROR - 2014-06-25 08:10:10.055; org.apache.solr.common.SolrException; java.lang.ClassCastException: java.lang.Double cannot be cast to org.apache.lucene.util.BytesRef
>     at org.apache.solr.schema.FieldType.marshalStringSortValue(FieldType.java:981)
>     at org.apache.solr.schema.TextField.marshalSortValue(TextField.java:176)
>     at org.apache.solr.search.grouping.distributed.shardresultserializer.SearchGroupsResultTransformer.serializeSearchGroup(SearchGroupsResultTransformer.java:125)
>     at org.apache.solr.search.grouping.distributed.shardresultserializer.SearchGroupsResultTransformer.transform(SearchGroupsResultTransformer.java:65)
>     at org.apache.solr.search.grouping.distributed.shardresultserializer.SearchGroupsResultTransformer.transform(SearchGroupsResultTransformer.java:43)
>     at org.apache.solr.search.grouping.CommandHandler.processResult(CommandHandler.java:193)
>     at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:340)
>     at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:218)
>     at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
>   ...
> {noformat}
> It looks like {{serializeSearchGroup}} is matching the sort expression as the {{"*"}} dynamic field, which is a TextField in the repro.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org