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: [email protected]
For additional commands, e-mail: [email protected]