private boolean contains(Document<?> haystack, String needle) { for (String field : haystack.getContentFields()) { if (field.contains(needle)) { return true; } if (contains(haystack.getContentField(field), needle)) { return true; } } return false; }
@SuppressWarnings("unchecked") private void addField(Document<?> doc, SolrInputDocument inputDoc, String field) { if (doc.hasContentField(field)) { Object toField = fieldMappings.get(field); if(toField instanceof String) { inputDoc.addField((String) toField, doc.getContentField(field)); } else if(toField instanceof List){ for(String s : (List<String>) toField) { inputDoc.addField(s, doc.getContentField(field)); } } } }
protected SolrInputDocument createSolrInputDocumentWithFieldConfig( Document<?> doc) { SolrInputDocument docToAdd = new SolrInputDocument(); if (sendAll) { for (String inField : doc.getContentFields()) { docToAdd.addField(inField, doc.getContentField(inField)); } } else { for (String inField : fieldMappings.keySet()) { addField(doc, docToAdd, inField); } } return docToAdd; }
private boolean equalContent(Document<?> d) { Set<String> content = d.getContentFields(); if(content.size()!=getContentFields().size()) { return false; } for(String s : content) { if(!getContentFields().contains(s)) { return false; } if(!Comparator.equals(getContentField(s), d.getContentField(s))) { return false; } } return true; }
private boolean equalContent(Document<?> d) { Set<String> content = d.getContentFields(); if(content.size()!=getContentFields().size()) { return false; } for(String s : content) { if(!getContentFields().contains(s)) { return false; } if(!Comparator.equals(getContentField(s), d.getContentField(s))) { return false; } } return true; }
@Override public void putAll(Document<?> d) { if(d.getID() != null) { documentMap.put(ID_KEY, d.getID().getID()); } if(d.getAction()!=null) { documentMap.put(ACTION_KEY, d.getAction()); } for(Map.Entry<String, Object> e : d.getMetadataMap().entrySet()) { putMetadataField(e.getKey(), e.getValue()); } for(String s : d.getContentFields()) { putContentField(s, d.getContentField(s)); } }