Github user dsmiley commented on a diff in the pull request:
https://github.com/apache/lucene-solr/pull/455#discussion_r223561565
--- Diff:
solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java
---
@@ -461,5 +466,33 @@ private static boolean isChildDoc(Object obj) {
}
return objValues.iterator().next() instanceof SolrDocumentBase;
}
+
+ private void removeObj(Collection original, Object toRemove, String
fieldName) {
+ if(isChildDoc(toRemove)) {
+ removeChildDoc(original, (SolrInputDocument) toRemove);
+ } else {
+ original.remove(getNativeFieldValue(fieldName, toRemove));
+ }
+ }
+
+ private static void removeChildDoc(Collection original,
SolrInputDocument docToRemove) {
+ for(SolrInputDocument doc: (Collection<SolrInputDocument>) original) {
+ if(isDerivedFromDoc(doc, docToRemove)) {
+ original.remove(doc);
+ return;
+ }
+ }
+ }
+
+ private static boolean isDerivedFromDoc(SolrInputDocument fullDoc,
SolrInputDocument subDoc) {
--- End diff --
I see the new docs; still it's unclear without the context of our
conversation. Should "subDoc" be "partialDoc"? How is it that the fullDoc is
"the document to be tested" when the return value is "wether subDoc is a subset
of fullDoc"? Isn't the subject of the test subDoc?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]