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 {