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

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 7.1
    • None
    • 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

              Unassigned Unassigned
              varun Varun Thacker
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

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