Github user moshebla commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/395#discussion_r194245569
  
    --- 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 --
    
    It can handle it internally, but we have to ensure a JSON list is added as 
a list of one document, and not as a single document, to remain true to the 
original JSON document.


---

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to