Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-12457

field(x,min|max) sorting doesn't work on trie or str fields in multi-shard collections

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 7.1
    • Fix Version/s: None
    • Component/s: None

      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

      <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"/>
      
      

      Now If I add a few docs

      [
      {"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"]}
      ]

      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:

      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)

       

        Attachments

        1. SOLR-12457.patch
          15 kB
          Chris M. Hostetter

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                varun Varun Thacker
              • Votes:
                1 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m