You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2014/08/23 16:08:57 UTC

svn commit: r1620029 - /lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java

Author: jbernste
Date: Sat Aug 23 14:08:56 2014
New Revision: 1620029

URL: http://svn.apache.org/r1620029
Log:
SOLR-6407: SortingResponseWriter String sorting broken on single segment indexes

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java?rev=1620029&r1=1620028&r2=1620029&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java Sat Aug 23 14:08:56 2014
@@ -444,6 +444,10 @@ public class SortingResponseWriter imple
       }
       return docId+docBase < sd.docId+sd.docBase;
     }
+
+    public String toString() {
+      return "";
+    }
   }
 
   class SingleValueSortDoc extends SortDoc {
@@ -496,6 +500,10 @@ public class SortingResponseWriter imple
       SingleValueSortDoc sd = (SingleValueSortDoc)o;
       return value1.compareTo(sd.value1);
     }
+
+    public String toString() {
+      return docId+":"+value1.toString();
+    }
   }
 
   class DoubleValueSortDoc extends SingleValueSortDoc {
@@ -1088,8 +1096,10 @@ public class SortingResponseWriter imple
 
     public StringValue(SortedDocValues vals, String field, IntComp comp)  {
       this.vals = vals;
-      this.segmentVals = ((MultiDocValues.MultiSortedDocValues) vals).values;
-      this.ordinalMap = ((MultiDocValues.MultiSortedDocValues) vals).mapping;
+      if(vals instanceof  MultiDocValues.MultiSortedDocValues) {
+        this.segmentVals = ((MultiDocValues.MultiSortedDocValues) vals).values;
+        this.ordinalMap = ((MultiDocValues.MultiSortedDocValues) vals).mapping;
+      }
       this.field = field;
       this.comp = comp;
       this.currentOrd = comp.resetValue();
@@ -1104,7 +1114,11 @@ public class SortingResponseWriter imple
       if(ord < 0) {
         currentOrd = -1;
       } else {
-        currentOrd = (int)globalOrds.get(ord);
+        if(globalOrds != null) {
+          currentOrd = (int)globalOrds.get(ord);
+        } else {
+          currentOrd = ord;
+        }
       }
     }
 
@@ -1115,8 +1129,12 @@ public class SortingResponseWriter imple
 
     public void setNextReader(AtomicReaderContext context) {
       segment = context.ord;
-      globalOrds = ordinalMap.getGlobalOrds(segment);
-      currentVals = segmentVals[segment];
+      if(ordinalMap != null) {
+        globalOrds = ordinalMap.getGlobalOrds(segment);
+        currentVals = segmentVals[segment];
+      } else {
+        currentVals = vals;
+      }
     }
 
     public void reset() {
@@ -1127,6 +1145,10 @@ public class SortingResponseWriter imple
       StringValue sv = (StringValue)o;
       return comp.compare(currentOrd, sv.currentOrd);
     }
+
+    public String toString() {
+      return Integer.toString(this.currentOrd);
+    }
   }
 
   protected abstract class FieldWriter {