Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Solr DocTransformer is good, but it only allows us to change current document: add or remove, update fields.
It would be great if we can update other document(previous especially) , or better we can delete doc(especially useful during test) or add doc in DocTransformer.
User case:
We can use flat group mode(group.main=true) to put parent and child close to each other(parent first), then we can use DocTransformer to update parent document when access its child document.
Some thought about Implementation:
org.apache.solr.response.TextResponseWriter.writeDocuments(String, ResultContext, ReturnFields)
when cachMode=true, in the for loop, after transform, we can store the solrdoc in a list, write these doc at the end.
cachMode = req.getParams().getBool("cachMode", false);
SolrDocument[] cachedDocs = new SolrDocument[sz];
for (int i = 0; i < sz; i++) {
SolrDocument sdoc = toSolrDocument(doc);
if (transformer != null)
if(cachMode)
{ cachedDocs[i] = sdoc; }else
{ writeSolrDocument( null, sdoc, returnFields, i ); }}
if (transformer != null) {
transformer.setContext(null);
}
if(cachMode) {
for (int i = 0; i < sz; i++)
}
writeEndDocumentList();