You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by va...@apache.org on 2018/08/24 07:08:44 UTC

lucene-solr:master: SOLR-11598: Fix bug while setting and resetting string doc-values while exporting documents

Repository: lucene-solr
Updated Branches:
  refs/heads/master aa10cb780 -> 9e78be40c


SOLR-11598: Fix bug while setting and resetting string doc-values while exporting documents


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/9e78be40
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/9e78be40
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/9e78be40

Branch: refs/heads/master
Commit: 9e78be40c338005b75609a3b123778aea822bcf0
Parents: aa10cb7
Author: Varun Thacker <va...@apache.org>
Authored: Thu Aug 23 23:57:48 2018 -0700
Committer: Varun Thacker <va...@apache.org>
Committed: Thu Aug 23 23:57:48 2018 -0700

----------------------------------------------------------------------
 .../apache/solr/handler/export/StringValue.java |  4 ++--
 .../solr/handler/export/TestExportWriter.java   | 23 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e78be40/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/export/StringValue.java b/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
index b7f020b..5df4eeb 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
@@ -96,10 +96,10 @@ class StringValue implements SortValue {
   }
 
   public void setNextReader(LeafReaderContext context) throws IOException {
-    if (globalDocValues instanceof MultiDocValues.MultiSortedDocValues) {
+    if (ordinalMap != null) {
       toGlobal = ordinalMap.getGlobalOrds(context.ord);
-      docValues = DocValues.getSorted(context.reader(), field);
     }
+    docValues = DocValues.getSorted(context.reader(), field);
     lastDocID = 0;
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e78be40/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
index 6bb1bdb..206132e 100644
--- a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
+++ b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
@@ -84,6 +84,29 @@ public class TestExportWriter extends SolrTestCaseJ4 {
 
   }
 
+  @Test
+  public void testSortingOnFieldWithNoValues() throws Exception {
+    assertU(delQ("*:*"));
+    assertU(commit());
+
+    assertU(adoc("id","1"));
+    assertU(commit());
+
+    // 10 fields
+    List<String> fieldNames = new ArrayList<>(Arrays.asList("floatdv", "intdv", "stringdv", "longdv", "doubledv",
+        "datedv", "booleandv", "field1_s_dv", "field2_i_p", "field3_l_p"));
+    for (String sortField : fieldNames) {
+      String resp = h.query(req("q", "*:*", "qt", "/export", "fl", "id," + sortField, "sort", sortField + " desc"));
+      assertJsonEquals(resp, "{\n" +
+          "  \"responseHeader\":{\"status\":0},\n" +
+          "  \"response\":{\n" +
+          "    \"numFound\":1,\n" +
+          "    \"docs\":[{\n" +
+          "        \"id\":\"1\"}]}}");
+    }
+
+  }
+
   public static void createIndex() {
     assertU(adoc("id","1",
                  "floatdv","2.1",