[
https://issues.apache.org/jira/browse/SOLR-15213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17322731#comment-17322731
]
James Ashbourne commented on SOLR-15213:
----------------------------------------
Brought the attached patch up to date with Solr v8.8.
> Add support for "merge" atomic update operation for child documents
> -------------------------------------------------------------------
>
> Key: SOLR-15213
> URL: https://issues.apache.org/jira/browse/SOLR-15213
> Project: Solr
> Issue Type: New Feature
> Reporter: James Ashbourne
> Priority: Major
> Attachments: SOLR-15213.patch
>
>
> Solr has "add", "set", "add-distinct" which work but all have their
> limitations. Namely, there's currently no way to atomically update a document
> where that document may or may not be present already by merging if it is
> present and inserting if it isn't.
> i.e. in the scenario where we have a document with two nested children:
>
> {noformat}
> {"id": "ocean1",
> "_isParent":"true",
> "fish": [
> {
> "id": "fish1",
> "type_s": "fish",
> "name_s": "Doe",
> "_isParent":"false"},
> {
> "id": "fish2",
> "type_s": "fish",
> "name_s": "Hans",
> "_isParent":"false"}]
> }{noformat}
>
> If we later want to update that child doc e.g.:
> {noformat}
> {"id": "ocean1",
> "_isParent":"true",
> "fish": [
> {
> "id": "fish1",
> "type_s": "fish",
> "name_s": "James", // new name
> "_isParent":"false"},
> ]
> }{noformat}
>
> Existing operations:
> - "add" - will add another nested doc with the same id leaving us with two
> children with the same id.
> - "set" - replaces the whole list of child docs with the single doc, we
> could use this but would first have to fetch all the existing children.
> - "add-distinct" - will reject the update based on the doc already being
> present.
> I've got some changes (see patch) that a new option "merge" which checks
> based on the id and merges the new document with the old with a fall back to
> add if there is no id match.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]