You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Markus Jelsma <ma...@openindex.io> on 2017/12/20 13:09:32 UTC

DocTransformer: Float cannot be cast to org.apache.lucene.document.StoredField

Hello,

Recently i had to make yet another DocTransformer. It ran fine on my local machine, this is what i get in production, on freshly reindexed data.

2017-12-20 12:12:58.987 ERROR (qtp329611835-17) [c:documents s:shard2 r:core_node1 x:documents_shard2_replica2] o.a.s.s.HttpSolrCall null:java.lang.ClassCastException: java.lang.Float cannot be cast to org.apache.lucene.document.StoredField
        at io.openindex.lunar.response.transform.ScoreNormalizingTransformer.transform(ScoreNormalizingTransformer.java:80)
        at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:120)
        at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:57)
        at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(BinaryResponseWriter.java:126)
        at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResults(BinaryResponseWriter.java:145)
        at org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(BinaryResponseWriter.java:89)

It trips over this line. I need to get the float from the document.
     StoredField value = (StoredField)doc.get(field);

I have had this before sometimes with another DocTransformer, i never solved the problem it went away instead.

Any ideas?

Many many thanks,
Markus

Re: DocTransformer: Float cannot be cast to org.apache.lucene.document.StoredField

Posted by Emir Arnautović <em...@sematext.com>.
Hi Markus,
You are trying to cast to stored field without checking if that is actually StoredField. What you can do is check first if StoredField or Float or… and cast to appropriate value.

HTH,
Emir
--
Monitoring - Log Management - Alerting - Anomaly Detection
Solr & Elasticsearch Consulting Support Training - http://sematext.com/



> On 20 Dec 2017, at 14:09, Markus Jelsma <ma...@openindex.io> wrote:
> 
> Hello,
> 
> Recently i had to make yet another DocTransformer. It ran fine on my local machine, this is what i get in production, on freshly reindexed data.
> 
> 2017-12-20 12:12:58.987 ERROR (qtp329611835-17) [c:documents s:shard2 r:core_node1 x:documents_shard2_replica2] o.a.s.s.HttpSolrCall null:java.lang.ClassCastException: java.lang.Float cannot be cast to org.apache.lucene.document.StoredField
>        at io.openindex.lunar.response.transform.ScoreNormalizingTransformer.transform(ScoreNormalizingTransformer.java:80)
>        at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:120)
>        at org.apache.solr.response.DocsStreamer.next(DocsStreamer.java:57)
>        at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(BinaryResponseWriter.java:126)
>        at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResults(BinaryResponseWriter.java:145)
>        at org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(BinaryResponseWriter.java:89)
> 
> It trips over this line. I need to get the float from the document.
>     StoredField value = (StoredField)doc.get(field);
> 
> I have had this before sometimes with another DocTransformer, i never solved the problem it went away instead.
> 
> Any ideas?
> 
> Many many thanks,
> Markus