[ https://issues.apache.org/jira/browse/SOLR-12457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Varun Thacker updated SOLR-12457: --------------------------------- Description: When I go to sort on a multi-valued field in a 2 shard collection, which has trie fields the query fails. To reproduce we need 2+ shards, a multi-valued trie field and "desc" sort criteria. Here's my schema {code:java} <dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true" docValues="true"/> <fieldType class="solr.TrieIntField" docValues="true" name="int" positionIncrementGap="0" precisionStep="0"/> <dynamicField name="*_i" type="pint" indexed="true" stored="true" multiValued="true"/> <fieldType name="pint" class="solr.IntPointField" docValues="true"/> {code} Now If I add a few docs {code:java} [ {"id" : "1", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]}, {"id" : "2", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]}, {"id" : "3", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]} ]{code} Works: [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_i,max)%20desc] Doesn't Work: [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_is,max)%20desc] To be more clear when I say it doesn't work , the query throws and error and here's the stack trace for it: {code:java} ERROR - 2018-06-06 22:55:06.599; [c:gettingstarted s:shard2 r:core_node8 x:gettingstarted_shard2_replica_n5] org.apache.solr.common.SolrException; null:java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.lucene.util.BytesRef at org.apache.lucene.search.FieldComparator$TermOrdValComparator.compareValues(FieldComparator.java:561) at org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:161) at org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:153) at org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:91) at org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:33) at org.apache.lucene.util.PriorityQueue.upHeap(PriorityQueue.java:263) at org.apache.lucene.util.PriorityQueue.add(PriorityQueue.java:140) at org.apache.lucene.util.PriorityQueue.insertWithOverflow(PriorityQueue.java:156) at org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:924) at org.apache.solr.handler.component.QueryComponent.handleRegularResponses(QueryComponent.java:585) at org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:564) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:423) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2484) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:720) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:526){code} was: When I go to sort on a multi-valued field in a 2 shard collection, which has trie fields the query fails. To reproduce , we need 2+ shards , some docs that don't have any value for the field and a "desc" sort criteria. Here's my schema {code:java} <dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true" docValues="true"/> <fieldType class="solr.TrieIntField" docValues="true" name="int" positionIncrementGap="0" precisionStep="0"/> <dynamicField name="*_i" type="pint" indexed="true" stored="true" multiValued="true"/> <fieldType name="pint" class="solr.IntPointField" docValues="true"/> {code} Now If I add a few docs {code:java} [ {"id" : "1", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]}, {"id" : "2", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]}, {"id" : "3", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", "3", "4", "5"]}, {"id" : "4"}, {"id" : "5"}, {"id" : "6"} ]{code} Works: [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_i,max)%20desc] Doesn't Work: [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_is,max)%20desc] To be more clear when I say it doesn't work , the query throws and error and here's the stack trace for it: {code:java} ERROR - 2018-06-06 22:55:06.599; [c:gettingstarted s:shard2 r:core_node8 x:gettingstarted_shard2_replica_n5] org.apache.solr.common.SolrException; null:java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.lucene.util.BytesRef at org.apache.lucene.search.FieldComparator$TermOrdValComparator.compareValues(FieldComparator.java:561) at org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:161) at org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:153) at org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:91) at org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:33) at org.apache.lucene.util.PriorityQueue.upHeap(PriorityQueue.java:263) at org.apache.lucene.util.PriorityQueue.add(PriorityQueue.java:140) at org.apache.lucene.util.PriorityQueue.insertWithOverflow(PriorityQueue.java:156) at org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:924) at org.apache.solr.handler.component.QueryComponent.handleRegularResponses(QueryComponent.java:585) at org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:564) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:423) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2484) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:720) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:526){code} > Multi valued field sorting doesn't work on trie fields > ------------------------------------------------------ > > Key: SOLR-12457 > URL: https://issues.apache.org/jira/browse/SOLR-12457 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Affects Versions: 7.1 > Reporter: Varun Thacker > Priority: Major > > When I go to sort on a multi-valued field in a 2 shard collection, which has > trie fields the query fails. > To reproduce we need 2+ shards, a multi-valued trie field and "desc" sort > criteria. > Here's my schema > {code:java} > <dynamicField name="*_is" type="int" indexed="true" stored="true" > multiValued="true" docValues="true"/> > <fieldType class="solr.TrieIntField" docValues="true" name="int" > positionIncrementGap="0" precisionStep="0"/> > <dynamicField name="*_i" type="pint" indexed="true" stored="true" > multiValued="true"/> > <fieldType name="pint" class="solr.IntPointField" docValues="true"/> > {code} > Now If I add a few docs > {code:java} > [ > {"id" : "1", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", > "3", "4", "5"]}, > {"id" : "2", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", > "3", "4", "5"]}, > {"id" : "3", "test_is" : ["1", "2", "3", "4", "5"], "test_i" : ["1", "2", > "3", "4", "5"]} > ]{code} > Works: > [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_i,max)%20desc] > > Doesn't Work: > [http://localhost:8983/solr/gettingstarted/select?q=*:*&sort=field(test_is,max)%20desc] > > To be more clear when I say it doesn't work , the query throws and error and > here's the stack trace for it: > {code:java} > ERROR - 2018-06-06 22:55:06.599; [c:gettingstarted s:shard2 r:core_node8 > x:gettingstarted_shard2_replica_n5] org.apache.solr.common.SolrException; > null:java.lang.ClassCastException: java.lang.String cannot be cast to > org.apache.lucene.util.BytesRef > at > org.apache.lucene.search.FieldComparator$TermOrdValComparator.compareValues(FieldComparator.java:561) > at > org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:161) > at > org.apache.solr.handler.component.ShardFieldSortedHitQueue$1.compare(ShardFieldSortedHitQueue.java:153) > at > org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:91) > at > org.apache.solr.handler.component.ShardFieldSortedHitQueue.lessThan(ShardFieldSortedHitQueue.java:33) > at org.apache.lucene.util.PriorityQueue.upHeap(PriorityQueue.java:263) > at org.apache.lucene.util.PriorityQueue.add(PriorityQueue.java:140) > at > org.apache.lucene.util.PriorityQueue.insertWithOverflow(PriorityQueue.java:156) > at > org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:924) > at > org.apache.solr.handler.component.QueryComponent.handleRegularResponses(QueryComponent.java:585) > at > org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:564) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:423) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:2484) > at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:720) > at > org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:526){code} > -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org