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:38:19 UTC

svn commit: r1620032 - in /lucene/dev/branches/lucene_solr_4_10: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java

Author: jbernste
Date: Sat Aug 23 14:38:19 2014
New Revision: 1620032

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

Modified:
    lucene/dev/branches/lucene_solr_4_10/   (props changed)
    lucene/dev/branches/lucene_solr_4_10/solr/   (props changed)
    lucene/dev/branches/lucene_solr_4_10/solr/core/   (props changed)
    lucene/dev/branches/lucene_solr_4_10/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java

Modified: lucene/dev/branches/lucene_solr_4_10/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java?rev=1620032&r1=1620031&r2=1620032&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_10/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java (original)
+++ lucene/dev/branches/lucene_solr_4_10/solr/core/src/java/org/apache/solr/response/SortingResponseWriter.java Sat Aug 23 14:38:19 2014
@@ -434,6 +434,10 @@ public class SortingResponseWriter imple
       }
       return docId+docBase < sd.docId+sd.docBase;
     }
+
+    public String toString() {
+      return "";
+    }
   }
 
   class SingleValueSortDoc extends SortDoc {
@@ -486,6 +490,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 {
@@ -1078,8 +1086,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();
@@ -1094,7 +1104,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;
+        }
       }
     }
 
@@ -1105,8 +1119,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() {
@@ -1117,6 +1135,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 {