You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by dsmiley <gi...@git.apache.org> on 2018/11/06 13:49:15 UTC
[GitHub] lucene-solr pull request #455: SOLR-12638
Github user dsmiley commented on a diff in the pull request:
https://github.com/apache/lucene-solr/pull/455#discussion_r231127727
--- Diff: solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java ---
@@ -639,12 +651,32 @@ public static SolrInputDocument getInputDocument(SolrCore core, BytesRef idBytes
sid = new SolrInputDocument();
} else {
Document luceneDocument = docFetcher.doc(docid);
- sid = toSolrInputDocument(luceneDocument, core.getLatestSchema());
+ sid = toSolrInputDocument(luceneDocument, schema);
}
- if (onlyTheseNonStoredDVs != null) {
- docFetcher.decorateDocValueFields(sid, docid, onlyTheseNonStoredDVs);
- } else {
- docFetcher.decorateDocValueFields(sid, docid, docFetcher.getNonStoredDVsWithoutCopyTargets());
+ ensureDocFieldsDecorated(onlyTheseNonStoredDVs, sid, docid, docFetcher, resolveRootDoc ||
+ resolveChildren || schema.hasExplicitField(IndexSchema.NEST_PATH_FIELD_NAME));
+ SolrInputField rootField = sid.getField(IndexSchema.ROOT_FIELD_NAME);
+ if((resolveChildren || resolveRootDoc) && schema.isUsableForChildDocs() && rootField!=null) {
+ // doc is part of a nested structure
+ String id = resolveRootDoc? (String) rootField.getFirstValue(): (String) sid.getField(idField.getName()).getFirstValue();
+ ModifiableSolrParams params = new ModifiableSolrParams()
+ .set("fl", "*, _nest_path_, [child]")
+ .set("limit", "-1");
+ SolrQueryRequest nestedReq = new LocalSolrQueryRequest(core, params);
+ final BytesRef rootIdBytes = new BytesRef(id);
+ final int rootDocId = searcher.getFirstMatch(new Term(idField.getName(), rootIdBytes));
+ final DocTransformer childDocTransformer = TransformerFactory.defaultFactories.get("child").create("child", params, nestedReq);
--- End diff --
no, use `core.getTransformerFactory("child")`
---
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org