diff --git a/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java b/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java index 2ad990bc..f69ec295 100644 --- a/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java +++ b/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java @@ -140,6 +140,10 @@ public int compare(ScoreDoc doc1, ScoreDoc doc2) { } public String value(ScoreDoc doc) { + if (values.lookup[values.order[doc.doc]] == null) { + return null; + } + return String.valueOf(values.lookup[values.order[doc.doc]]); } }; diff --git a/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java b/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java index 3c203d11..a3108141 100644 --- a/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java +++ b/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java @@ -50,6 +50,16 @@ public static class ReverseComparable implements Comparable,Serializable{ public int compareTo(Object o) { if (o instanceof ReverseComparable){ Comparable inner = ((ReverseComparable)o)._inner; + + if (_inner == null) { + if (inner == null) { + return 0; + } + return 1; + } else if (inner == null) { + return -1; + } + return -_inner.compareTo(inner); } else{