Nathan Dire created SOLR-6203:
---------------------------------

             Summary: 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.8, 4.7
            Reporter: Nathan Dire


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.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to