[
https://issues.apache.org/jira/browse/SOLR-6096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14003767#comment-14003767
]
Mikhail Khludnev commented on SOLR-6096:
----------------------------------------
bq. There might also be the case that any subdocument is removed by an update:
right. that's what I raised in SOLR-5211.
The problem is backward compatibility - that update wasn't treat as block
update before, and now Solr can just imply that every update is the block
update. However, we can introduce the special purposed {{/blockupdate/}}
handler with explicit block semantics for all case above .
So far it can be healed but in an ugly way eg. it need to support _children
nuke_ update eg:
{code}
<doc>
<field name="id">1</field>
<field name="title">Article without author</field>
<nodocs/>
</doc>
<doc>
<field name="id">1</field>
<field name="title">Article without author</field>
<docs></docs>
</doc>
<doc childfree="true">
<field name="id">1</field>
<field name="title">Article without author</field>
</doc>
{code}
pick your favorite one! and more than that SolrJ's SolrInputDocument amendments
are expected even more weird.
> Support Update and Delete on nested documents
> ---------------------------------------------
>
> Key: SOLR-6096
> URL: https://issues.apache.org/jira/browse/SOLR-6096
> Project: Solr
> Issue Type: Improvement
> Affects Versions: 4.7.2
> Reporter: Thomas Scheffler
> Labels: blockjoin, nested
>
> When using nested or child document. Update and delete operation on the root
> document should also affect the nested documents, as no child can exist
> without its parent :-)
> Example
> {code:xml|title=First Import}
> <doc>
> <field name="id">1</field>
> <field name="title">Article with author</field>
> <doc>
> <field name="name">Smith, John</field>
> <field name="role">author</field>
> </doc>
> </doc>
> {code}
> If I change my mind and the author was not named *John* but *_Jane_*:
> {code:xml|title=Changed name of author of '1'}
> <doc>
> <field name="id">1</field>
> <field name="title">Article with author</field>
> <doc>
> <field name="name">Smith, Jane</field>
> <field name="role">author</field>
> </doc>
> </doc>
> {code}
> I would expect that John is not in the index anymore. Currently he is. There
> might also be the case that any subdocument is removed by an update:
> {code:xml|title=Remove author}
> <doc>
> <field name="id">1</field>
> <field name="title">Article without author</field>
> </doc>
> {code}
> This should affect a delete on all nested documents, too. The same way all
> nested documents should be deleted if I delete the root document:
> {code:xml|title=Deletion of '1'}
> <delete>
> <id>1</id>
> <!-- implying also
> <query>_root_:1</query>
> -->
> </delete>
> {code}
> This is currently possible to do all this stuff on client side by issuing
> additional request to delete document before every update. It would be more
> efficient if this could be handled on SOLR side. One would benefit on atomic
> update. The biggest plus shows when using "delete-by-query".
> {code:xml|title=Deletion of '1' by query}
> <delete>
> <query>title:*</query>
> <!-- implying also
> <query>_root_:1</query>
> -->
> </delete>
> {code}
> In that case one would not have to first query all documents and issue
> deletes by those id and every document that are nested.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]