protected static void insertChildAlerts(SolrDocument solrDocument, Map<String, Object> document) { // Make sure to put child alerts in if (solrDocument.hasChildDocuments() && solrDocument .getFieldValue(Constants.SENSOR_TYPE) .equals(MetaAlertConstants.METAALERT_TYPE)) { List<Map<String, Object>> childDocuments = new ArrayList<>(); for (SolrDocument childDoc : solrDocument.getChildDocuments()) { Map<String, Object> childDocMap = new HashMap<>(); childDoc.getFieldNames().stream() .filter(name -> !name.equals(SolrDao.VERSION_FIELD)) .forEach(name -> childDocMap.put(name, childDoc.getFieldValue(name))); childDocuments.add(childDocMap); } document.put(MetaAlertConstants.ALERT_FIELD, childDocuments); } }
if(solrDocument1.getChildDocuments() == null && solrDocument2.getChildDocuments() == null) { return true; if(solrDocument1.getChildDocuments() == null || solrDocument2.getChildDocuments() == null) { return false; } else if(solrDocument1.getChildDocuments().size() != solrDocument2.getChildDocuments().size()) { return false; } else { Iterator<SolrDocument> childDocsIter1 = solrDocument1.getChildDocuments().iterator(); Iterator<SolrDocument> childDocsIter2 = solrDocument2.getChildDocuments().iterator(); while(childDocsIter1.hasNext()) { if(!compareSolrDocument(childDocsIter1.next(), childDocsIter2.next())) {
private Object getFieldValue(SolrDocument solrDocument) { if (child != null) { List<SolrDocument> children = solrDocument.getChildDocuments(); if (children == null || children.isEmpty()) return null; if (isList) {
private Object getFieldValue(SolrDocument solrDocument) { if (child != null) { List<SolrDocument> children = solrDocument.getChildDocuments(); if (children == null || children.isEmpty()) return null; if (isList) {
public static SolrInputDocument toSolrInputDocument(SolrDocument solrDocument) { SolrInputDocument solrInputDocument = new SolrInputDocument(); for (String name : solrDocument.getFieldNames()) { solrInputDocument.addField(name, solrDocument.getFieldValue(name)); } //Don't forget children documents if(solrDocument.getChildDocuments() != null) { for(SolrDocument childDocument : solrDocument.getChildDocuments()) { //You can add paranoic check against infinite loop childDocument == solrDocument solrInputDocument.addChildDocument(toSolrInputDocument(childDocument)); } } return solrInputDocument; } }
/** * Converts a {@link SolrDocument} to a {@link SolrInputDocument} * * @param solrDocument * @return */ public static SolrInputDocument toSolrInputDocument(SolrDocument solrDocument) { /* * Note: ClientUtils.toSolrInputDocument was removed in solr 6 Replacement found on * https://stackoverflow.com/questions/38266684/ * substitute-of-org-apache-solr-client-solrj-util-clientutils-tosolrinputdocument */ SolrInputDocument solrInputDocument = new SolrInputDocument(); for (String name : solrDocument.getFieldNames()) { solrInputDocument.addField(name, solrDocument.getFieldValue(name)); } //Don't forget children documents if (solrDocument.getChildDocuments() != null) { for (SolrDocument childDocument : solrDocument.getChildDocuments()) { //You can add paranoic check against infinite loop childDocument == solrDocument solrInputDocument.addChildDocument(toSolrInputDocument(childDocument)); } } return solrInputDocument; } }
@Override public T convert(Map<String, ?> source) { if (source == null) { return null; } SolrDocument document = new SolrDocument(); document.putAll(source); if (source instanceof SolrDocument && ((SolrDocument) source).hasChildDocuments()) { document.addChildDocuments(((SolrDocument) source).getChildDocuments()); } return documentObjectBinder.getBean(clazz, document); }
public void writeSolrDocument(SolrDocument doc) throws IOException { List<SolrDocument> children = doc.getChildDocuments(); int fieldsCount = 0; if(writableDocFields == null || writableDocFields.wantsAllFields() || ignoreWritable){
public void writeSolrDocument(SolrDocument doc) throws IOException { List<SolrDocument> children = doc.getChildDocuments(); int fieldsCount = 0; if(writableDocFields == null || writableDocFields.wantsAllFields() || ignoreWritable){
System.out.println( "\t" + name + "=" + value ); List<SolrDocument> childDocs = doc.getChildDocuments(); if ( null!=childDocs ) { for ( SolrDocument child : childDocs ) {