> Can you provide some sample data to demonstrates the problem? (ideally
> using the 4.x example configs - but if you can't reproduce with that
> then providing your own configs would be helpful)

I repo'd using the example config (with sharding).  I was missing one
necessary condition: the schema needs a "*" dynamic field.
It looks like serializeSearchGroup matches the sort expression as the
"*" field, thus marshalling the double as TextField.

Should I enter a ticket with the full repro?

Thanks,

Nate

On Tue, Jun 24, 2014 Chris Hostetter <hossman_luc...@fucit.org> wrote:
>
> : I recently tried upgrading our setup from 4.5.1 to 4.7+, and I'm
> : seeing an exception when I use (1) a function to sort and (2) result
> : grouping.  The same query works fine with either (1) or (2) alone.
> : Example below.
>
> Did you modify your schema in any way when upgrading?
>
> Can you provide some sample data to demonstrates the problem? (ideally
> using the 4.x example configs - but if you can't reproduce with that
> then providing your own configs would be helpful)
>
> I was unabled to reproduce doing a quick sanity check using the example
> with a "shard" param to force a distrib query...
>
> http://localhost:8983/solr/select?q=*:*&shards=localhost:8983/solr&sort=sum%281,1%29%20desc&group=true&group.field=inStock
>
> It's possible that the distributed grouping code has a bug in it related
> to the marshalling of sort values and i'm just not tickling that bug
> with my quick check ... but if i remember correctly work was done to fix
> grouped sorting to correctly deal with this when
> FieldType.marshalSortValue was introduced.
>
>
> : Example (v4.8.1):
> : {
> :   "responseHeader": {
> :     "status": 500,
> :     "QTime": 14,
> :     "params": {
> :       "sort": "sum(1,1) desc",
> :       "indent": "true",
> :       "q": "title:solr",
> :       "_": "1403586036335",
> :       "group.field": "type",
> :       "group": "true",
> :       "wt": "json"
> :     }
> :   },
> :   "error": {
> :     "msg": "java.lang.Double cannot be cast to 
> org.apache.lucene.util.BytesRef",
> :     "trace": 
> "org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
> : java.lang.Double cannot be cast to org.apache.lucene.util.BytesRef
> :     "code": 500
> :   }
> : }
> :
> : From the log:
> :
> : org.apache.solr.common.SolrException;
> : null: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)
>
>
> -Hoss
> http://www.lucidworks.com/

Reply via email to