Github user dsmiley commented on a diff in the pull request: https://github.com/apache/lucene-solr/pull/395#discussion_r194761432 --- Diff: solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java --- @@ -664,8 +672,38 @@ private Object parseSingleFieldValue(int ev, String fieldName) throws IOExceptio if (ev == JSONParser.ARRAY_END) { return lst; } - Object val = parseSingleFieldValue(ev, fieldName); + Object val = parseSingleFieldValue(ev, sif); lst.add(val); + sif.setValue(null); + } + } + + private boolean isChildDoc(SolrInputDocument extendedMap) { + return extendedMap.containsKey(req.getSchema().getUniqueKeyField().getName()); + } + + private boolean entryIsChildDoc(Object val) { + if(val instanceof List) { + List listVal = (List) val; + if (listVal.size() == 0) return false; + return listVal.get(0) instanceof Map; + } + return val instanceof Map; + } + + private SolrInputDocument generateExtendedValueDoc(int ev) throws IOException { + assert ev == JSONParser.OBJECT_START; + SolrInputDocument extendedInfo = new SolrInputDocument(); + + while(true) { + ev = parser.nextEvent(); + if (ev == JSONParser.OBJECT_END) { + return extendedInfo; + } + String label = parser.getString(); + SolrInputField sif = new SolrInputField(label); + parseFieldValue(sif); + extendedInfo.addField(label, sif.getValue()); --- End diff -- I think you can use extendedInfo.putField(key,SolrInputField) here? Oh I see comments elsewhere in this file explaining why addField is used; maybe copy-paste those comments?
--- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org