public boolean add(SolrInputDocument e) { SolrInputDocument transformed = e.deepCopy(); if (transformed.hasChildDocuments()) { ChildRollupDocs childList = new ChildRollupDocs(); childList.addAll(transformed.getChildDocuments()); transformed.addField("_childDocuments_", childList); transformed.getChildDocuments().clear(); } return delegate.add(transformed); } }
if(sdoc1.getChildDocuments() == null && sdoc2.getChildDocuments() == null) { return true; if(sdoc1.getChildDocuments() == null || sdoc2.getChildDocuments() == null) { return false; } else if(sdoc1.getChildDocuments().size() != sdoc2.getChildDocuments().size()) { return false; } else { Iterator<SolrInputDocument> childDocsIter1 = sdoc1.getChildDocuments().iterator(); Iterator<SolrInputDocument> childDocsIter2 = sdoc2.getChildDocuments().iterator(); while(childDocsIter1.hasNext()) { if(!compareSolrInputDocument(childDocsIter1.next(), childDocsIter2.next())) {
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void write(@Nullable Object source, SolrDocumentBase sink) { if (source == null) { return; } SolrInputDocument convertedDocument = convert(source, SolrInputDocument.class); sink.putAll(convertedDocument); if (convertedDocument.hasChildDocuments() && sink instanceof SolrInputDocument) { ((SolrInputDocument) sink).addChildDocuments(convertedDocument.getChildDocuments()); } }
/** * @param d SolrInputDocument to convert * @return a SolrDocument with the same fields and values as the SolrInputDocument */ public static SolrDocument toSolrDocument(SolrInputDocument d) { SolrDocument doc = new SolrDocument(); for (SolrInputField field : d) { doc.setField(field.getName(), field.getValue()); } if (d.getChildDocuments() != null) { for (SolrInputDocument in : d.getChildDocuments()) { doc.addChildDocument(toSolrDocument(in)); } } return doc; }
for (SolrInputDocument childDocument : doc.getChildDocuments()) { writeXML(childDocument, writer);
for (SolrInputDocument childDocument : doc.getChildDocuments()) { writeXML(childDocument, writer);
public void writeSolrInputDocument(SolrInputDocument sdoc) throws IOException { List<SolrInputDocument> children = sdoc.getChildDocuments(); int sz = sdoc.size() + (children==null ? 0 : children.size()); writeTag(SOLRINPUTDOC, sz); writeFloat(1f); // document boost for (SolrInputField inputField : sdoc.values()) { writeExternString(inputField.getName()); writeVal(inputField.getValue()); } if (children != null) { for (SolrInputDocument child : children) { writeSolrInputDocument(child); } } }
public void writeSolrInputDocument(SolrInputDocument sdoc) throws IOException { List<SolrInputDocument> children = sdoc.getChildDocuments(); int sz = sdoc.size() + (children==null ? 0 : children.size()); writeTag(SOLRINPUTDOC, sz); writeFloat(sdoc.getDocumentBoost()); for (SolrInputField inputField : sdoc.values()) { if (inputField.getBoost() != 1.0f) { writeFloat(inputField.getBoost()); } writeExternString(inputField.getName()); writeVal(inputField.getValue()); } if (children != null) { for (SolrInputDocument child : children) { writeSolrInputDocument(child); } } }
if(doc.hasChildDocuments()) { out.append(",\"_childDocuments_\": ["); List<SolrInputDocument> childDocuments = doc.getChildDocuments(); for(SolrInputDocument childDocument : childDocuments) { if (firstChildDoc) firstChildDoc=false;