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

Joel Bernstein commented on SOLR-7452:
--------------------------------------

The root of the exception is:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
   [junit4]   2>        at 
org.apache.calcite.avatica.util.AbstractCursor$LongAccessor.getLong(AbstractCursor.java:540)
   [junit4]   2>        at 
org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:305)
   [junit4]   2>        at 
org.apache.calcite.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:393)
   [junit4]   2>        at 
org.apache.solr.client.solrj.io.stream.JDBCStream$1.selectValue(JDBCStream.java:314)
   [junit4]   2>        at 
org.apache.solr.client.solrj.io.stream.JDBCStream.read(JDBCStream.java:506)
   [junit4]   2>        at 
org.apache.solr.handler.SQLHandler$SqlHandlerStream.read(SQLHandler.java:186)
   [junit4]   2>        at 
org.apache.solr.client.solrj.io.stream.ExceptionStream.read(ExceptionStream.java:68)


Basically Calcite is expecting a long in this scenario because we map all 
integer types to longs in the SolrSchema.java class. I think the best way to 
deal with this is to have the FacetStream convert all Integers buckets to Longs.

The Streaming API really only deals with Longs and Doubles.

[[email protected]], let's create branch for this so we can collaborate. If 
you create a branch with this patch I'll fix up the FacetStream. Then you can 
take a final look and commit to master.




> json facet api returning inconsistent counts in cloud set up
> ------------------------------------------------------------
>
>                 Key: SOLR-7452
>                 URL: https://issues.apache.org/jira/browse/SOLR-7452
>             Project: Solr
>          Issue Type: Bug
>          Components: Facet Module
>    Affects Versions: 5.1
>            Reporter: Vamsi Krishna D
>              Labels: count, facet, sort
>         Attachments: SOLR-7452.patch, SOLR-7452.patch, SOLR-7452.patch
>
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> While using the newly added feature of json term facet api 
> (http://yonik.com/json-facet-api/#TermsFacet) I am encountering inconsistent 
> returns of counts of faceted value ( Note I am running on a cloud mode of 
> solr). For example consider that i have txns_id(unique field or key), 
> consumer_number and amount. Now for a 10 million such records , lets say i 
> query for 
> q=*:*&rows=0&
>  json.facet={
>    biskatoo:{
>        type : terms,
>        field : consumer_number,
>        limit : 20,
>       sort : {y:desc},
>       numBuckets : true,
>       facet:{
>        y : "sum(amount)"
>        }
>    }
>  }
> the results are as follows ( some are omitted ):
> "facets":{
>     "count":6641277,
>     "biskatoo":{
>       "numBuckets":3112708,
>       "buckets":[{
>           "val":"surya",
>           "count":4,
>           "y":2.264506},
>       {
>           "val":"raghu",
>           "COUNT":3,   // capitalised for recognition 
>           "y":1.8},
>         {
>           "val":"malli",
>           "count":4,
>           "y":1.78}]}}}
> but if i restrict the query to 
> q=consumer_number:raghu&rows=0&
>  json.facet={
>    biskatoo:{
>        type : terms,
>        field : consumer_number,
>        limit : 20,
>       sort : {y:desc},
>       numBuckets : true,
>       facet:{
>        y : "sum(amount)"
>        }
>    }
>  }
> i get :
>   "facets":{
>     "count":4,
>     "biskatoo":{
>       "numBuckets":1,
>       "buckets":[{
>           "val":"raghu",
>           "COUNT":4,
>           "y":2429708.24}]}}}
> One can see the count results are inconsistent ( and I found many occasions 
> of inconsistencies).
> I have tried the patch https://issues.apache.org/jira/browse/SOLR-7412 but 
> still the issue seems not resolved



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to