You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Ishan Chattopadhyaya (JIRA)" <ji...@apache.org> on 2019/04/24 10:57:00 UTC

[jira] [Updated] (SOLR-12167) Child documents are ignored if unknown atomic operation specified in parent doc

     [ https://issues.apache.org/jira/browse/SOLR-12167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ishan Chattopadhyaya updated SOLR-12167:
----------------------------------------
    Fix Version/s: master (9.0)
                   8.1

> Child documents are ignored if unknown atomic operation specified in parent doc
> -------------------------------------------------------------------------------
>
>                 Key: SOLR-12167
>                 URL: https://issues.apache.org/jira/browse/SOLR-12167
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: update
>            Reporter: Munendra S N
>            Assignee: Ishan Chattopadhyaya
>            Priority: Major
>             Fix For: 8.1, master (9.0)
>
>         Attachments: SOLR-12167.patch
>
>
> On trying to add this nested document,
> {code:java}
> {uniqueId : book6, type_s:book, title_t : "The Way of Kings", author_s : "Brandon Sanderson",
>   cat_s:fantasy, pubyear_i:2010, publisher_s:Tor, parent_unbxd:true,
>   _childDocuments_ : [
>     { uniqueId: book6_c1, type_s:review, review_dt:"2015-01-03T14:30:00Z",parentId : book6,
>       stars_i:5, author_s:rahul,
>       comment_t:"A great start to what looks like an epic series!"
>     }
>     ,
>     { uniqueId: book6_c2, type_s:review, review_dt:"2014-03-15T12:00:00Z",parentId : book6,
>       stars_i:3, author_s:arpan,
>       comment_t:"This book was too long."
>     }
>   ],labelinfo:{label_image:"",hotdeal_type:"",apply_hotdeal:""}
>  }
> {code}
> Only parent document is getting indexed(without labelinfo field) and child documents are being ingored.
> On checking the code,
> https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java#L94 
> I realized that since *labelinfo* is a Map, Solr is trying for atomic updates and since label_image, hotdeal_type, apply_hotdeal are invalid operation field is ignored. Unfortunately, child documents are also not getting indexed.
> h4. Problem with current behavior:
> * field is silently ignored when its value is a map instead of failing document update(when present in parent)
> * In the above case, child document is also getting ignored
> * If any field value is Map in child document but not in parent then nested document is indexed properly
> {code:java}
> {uniqueId : book6, type_s:book, title_t : "The Way of Kings", author_s : "Brandon Sanderson",
>   cat_s:fantasy, pubyear_i:2010, publisher_s:Tor, parent_unbxd:true,
>   _childDocuments_ : [
>     { uniqueId: book6_c1, type_s:review, review_dt:"2015-01-03T14:30:00Z",parentId : book6,
>       stars_i:5, author_s:rahul,
>       comment_t:"A great start to what looks like an epic series!"
> ,labelinfo:{label_image:"","hotdeal_type":"","apply_hotdeal":""}
>     }
>     ,
>     { uniqueId: book6_c2, type_s:review, review_dt:"2014-03-15T12:00:00Z",parentId : book6,
>       stars_i:3, author_s:arpan,
>       comment_t:"This book was too long."
>     }
>   ]
>  }
> {code}
> Here, nested document is indexed and labelinfo field value indexed in book6_c1 as string(using Map.toString())
> h4. Probable solution
> * If an unknown operation is specified in update document then instead of ignoring the field and field value, fail the document update(fail fast approach). So, that user would know something is wrong with the document. Also, this would solve the case where the parent doc is getting indexed and child documents are getting ignored
> * Currently, when child document's field value is a Map even then it gets indexed, instead update should fail



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org