Github user moshebla commented on a diff in the pull request:
https://github.com/apache/lucene-solr/pull/395#discussion_r195098134
--- Diff: solr/core/src/java/org/apache/solr/handler/loader/JsonLoader.java
---
@@ -570,37 +573,34 @@ private SolrInputDocument parseDoc(int ev) throws
IOException {
private void parseFieldValue(SolrInputField sif) throws IOException {
int ev = parser.nextEvent();
if (ev == JSONParser.OBJECT_START) {
- parseExtendedFieldValue(sif, ev);
+ parseExtendedFieldValue(ev, sif);
} else {
Object val = parseNormalFieldValue(ev, sif);
sif.setValue(val);
}
}
- private void parseExtendedFieldValue(SolrInputField sif, int ev)
throws IOException {
+ private void parseExtendedFieldValue(int ev, SolrInputField sif)
throws IOException {
assert ev == JSONParser.OBJECT_START;
- SolrInputDocument extendedSolrDocument =
generateExtendedValueDoc(ev);
+ SolrInputDocument extendedSolrDocument = parseExtendedValueAsDoc(ev);
if (isChildDoc(extendedSolrDocument)) {
- SolrInputDocument cDoc = new SolrInputDocument();
- for (Map.Entry<String, SolrInputField> extendedEntry:
extendedSolrDocument.entrySet()) {
- cDoc.setField(extendedEntry.getKey(),
extendedEntry.getValue().getValue());
- }
- sif.addValue(cDoc);
+ sif.addValue(extendedSolrDocument);
return;
}
Object normalFieldValue = null;
Map<String, Object> extendedInfo = null;
- for (String label: extendedSolrDocument.keySet() ) {
- Object fieldVal = extendedSolrDocument.get(label).getValue();
- if ("boost".equals(label)) {
+ for (SolrInputField field: extendedSolrDocument) {
+ Object fieldVal = field.getValue();
+ String fieldName = field.getName();
--- End diff --
Just tackled this one.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]