You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2016/06/09 06:30:39 UTC

[1/2] lucene-solr:branch_6_1: SOLR-7123: echo shows wrong output, and added a test for multi level nesting

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6_1 be3740e4f -> ef6146b88


SOLR-7123: echo shows wrong output, and added a test for multi level nesting


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

Branch: refs/heads/branch_6_1
Commit: f2dd03c1996748b4bee929659d794ed5aaffd4f5
Parents: be3740e
Author: Noble Paul <no...@apache.org>
Authored: Thu Jun 9 11:34:06 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Thu Jun 9 11:50:01 2016 +0530

----------------------------------------------------------------------
 .../apache/solr/handler/loader/JsonLoader.java  | 12 +++---
 .../org/apache/solr/handler/JsonLoaderTest.java | 43 ++++++++++++++++++++
 2 files changed, 50 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f2dd03c1/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
index 2c5b6ac..318f8e6 100644
--- a/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
+++ b/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
@@ -221,10 +221,7 @@ public class JsonLoader extends ContentStreamLoader {
               docs = new ArrayList();
               rsp.add("docs", docs);
             }
-            if (copy.containsKey(null)) {
-              copy.put(CHILD_DOC_KEY, copy.get(null));
-              copy.remove(null);
-            }
+            changeChildDoc(copy);
             docs.add(copy);
           } else {
             AddUpdateCommand cmd = new AddUpdateCommand(req);
@@ -251,7 +248,7 @@ public class JsonLoader extends ContentStreamLoader {
               if (o instanceof Map) result.addChildDocument(buildDoc((Map) o));
             }
           } else if (e.getValue() instanceof Map) {
-            result.addChildDocument(buildDoc((Map) e));
+            result.addChildDocument(buildDoc((Map) e.getValue()));
           }
         } else {
           result.setField(e.getKey(), e.getValue());
@@ -659,4 +656,9 @@ public class JsonLoader extends ContentStreamLoader {
     }
   }
 
+  private static Map changeChildDoc(Map m) {
+    if (m.containsKey(null)) m.put(CHILD_DOC_KEY, changeChildDoc((Map) m.remove(null)));
+    return m;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f2dd03c1/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java b/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
index 7e4d28a..65f2d3e 100644
--- a/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/JsonLoaderTest.java
@@ -388,6 +388,49 @@ public class JsonLoaderTest extends SolrTestCaseJ4 {
     assertEquals(d.getFieldValue("c"), "c2");
     assertEquals(d.getFieldValue("e"), "e2");
     assertEquals(d.getFieldValue("d.p"), "q");
+
+    json = "{\n" +
+        "  \"id\": \"1\",\n" +
+        "  \"name\": \"i am the parent\",\n" +
+        "  \"cat\": \"parent\",\n" +
+        "  \"children\": [\n" +
+        "    {\n" +
+        "      \"id\": \"1.1\",\n" +
+        "      \"name\": \"i am the 1st child\",\n" +
+        "      \"cat\": \"child\"\n" +
+        "    },\n" +
+        "    {\n" +
+        "      \"id\": \"1.2\",\n" +
+        "      \"name\": \"i am the 2nd child\",\n" +
+        "      \"cat\": \"child\",\n" +
+        "      \"grandchildren\": [\n" +
+        "        {\n" +
+        "          \"id\": \"1.2.1\",\n" +
+        "          \"name\": \"i am the grandchild\",\n" +
+        "          \"cat\": \"grandchild\"\n" +
+        "        }\n" +
+        "      ]\n" +
+        "    }\n" +
+        "  ]\n" +
+        "}";
+    req = req(
+        "split", "/|/children|/children/grandchildren",
+        "f","$FQN:/**",
+        "f", "id:/children/id",
+        "f", "/name",
+        "f", "/children/name",
+        "f", "cat:/children/cat",
+        "f", "id:/children/grandchildren/id",
+        "f", "name:/children/grandchildren/name",
+        "f", "cat:/children/grandchildren/cat");
+    req.getContext().put("path", "/update/json/docs");
+    rsp = new SolrQueryResponse();
+    p = new BufferingRequestProcessor(null);
+    loader = new JsonLoader();
+    loader.load(req, rsp, new ContentStreamBase.StringStream(json), p);
+    assertEquals(2, p.addCommands.get(0).solrDoc.getChildDocuments().size());
+    assertEquals(1, p.addCommands.get(0).solrDoc.getChildDocuments().get(1).getChildDocuments().size());
+
   }
 
 


[2/2] lucene-solr:branch_6_1: SOLR-7123: echo shows wrong output, and added a test for multi level nesting

Posted by no...@apache.org.
SOLR-7123: echo shows wrong output, and added a test for multi level nesting


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

Branch: refs/heads/branch_6_1
Commit: ef6146b88500100cbdb482d20f05f50212f2d72f
Parents: f2dd03c
Author: Noble Paul <no...@apache.org>
Authored: Thu Jun 9 11:47:04 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Thu Jun 9 11:50:07 2016 +0530

----------------------------------------------------------------------
 .../org/apache/solr/handler/loader/JsonLoader.java    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/ef6146b8/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
index 318f8e6..ab7771a 100644
--- a/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
+++ b/solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
@@ -28,6 +28,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.UUID;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.solr.common.SolrException;
@@ -55,6 +57,7 @@ import org.noggit.ObjectBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static java.util.stream.Collectors.toList;
 import static org.apache.solr.common.params.CommonParams.JSON;
 import static org.apache.solr.common.params.CommonParams.PATH;
 
@@ -656,8 +659,15 @@ public class JsonLoader extends ContentStreamLoader {
     }
   }
 
-  private static Map changeChildDoc(Map m) {
-    if (m.containsKey(null)) m.put(CHILD_DOC_KEY, changeChildDoc((Map) m.remove(null)));
+  private static Object changeChildDoc(Object o) {
+    if (o instanceof List) {
+      return ((List) o)
+          .stream()
+          .map(JsonLoader::changeChildDoc)
+          .collect(toList());
+    }
+    Map m = (Map) o;
+    if (m.containsKey(null)) m.put(CHILD_DOC_KEY, changeChildDoc(m.remove(null)));
     return m;
   }