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]