Github user dsmiley commented on a diff in the pull request: https://github.com/apache/lucene-solr/pull/395#discussion_r193783038 --- Diff: solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java --- @@ -249,14 +251,27 @@ public void handle(Map<String, Object> record, String path) { private SolrInputDocument buildDoc(Map<String, Object> m) { SolrInputDocument result = new SolrInputDocument(); for (Map.Entry<String, Object> e : m.entrySet()) { - if (e.getKey() == null) {// special case. JsonRecordReader emits child docs with null key + if (entryIsChildDoc(e.getValue())) {// special case. JsonRecordReader emits child docs with null key if (e.getValue() instanceof List) { List value = (List) e.getValue(); for (Object o : value) { - if (o instanceof Map) result.addChildDocument(buildDoc((Map) o)); + if (o instanceof Map) { + if (anonChildDocFlag) { + result.addChildDocument(buildDoc((Map) o)); + } else { + if(!result.containsKey(e.getKey())) { + result.setField(e.getKey(), new ArrayList<>(1)); --- End diff -- This looks unnecessary; SolrInputDocument internally handles ensuring multiple values can be captures.
--- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org