[ 
https://issues.apache.org/jira/browse/SOLR-15468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17360856#comment-17360856
 ] 

David Smiley commented on SOLR-15468:
-------------------------------------

Sometimes you can alter a schema after having data, sometimes you can't -- 
depending on specifically what the changes are.  I think adding {{\_root\_}} is 
one of those no-no's.  A user who does so is at risk of hitting bad problems; 
it'd be challenging to support this.  If it worked for you before, I suppose 
you were lucky.  As of 8.0, the root field is always populated (seen in 
CHANGES.txt implemented by SOLR-5211).

If truly the only thing plaguing you is that safety check in 
[RealtimeGetComponent|https://github.com/apache/lucene-solr/blob/112e398d97d77f89bd2d114e569572d77536c290/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java#L745]
 that I could imagine a trivial & cheap modification to it to skip the check if 
the root field isn't universally present in all docs.  WDYT? 

> Regression: Adding _root_ schema field to existing index causes atomic update 
> failures
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-15468
>                 URL: https://issues.apache.org/jira/browse/SOLR-15468
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: update
>    Affects Versions: 8.8
>            Reporter: Andreas Hubold
>            Priority: Major
>              Labels: regression
>
> In previous Solr releases (8.6.3) it was possible to add the \_root\_ field 
> to the schema of an existing index, e.g to add functionality relying on child 
> documents without reindexing all documents.
> This does not work anymore with Solr 8.8.2, because SOLR-14923 added a check 
> in RealTimeGetComponent#getInputDocument that the root field contains the 
> expected value. IIUC, the check does not only fail for wrong values, but also 
> if the root field does not contain any value yet, as it's the case for 
> documents that were added before the field was added to the schema.
> The check causes atomic/partial updates to fail:
> {noformat}
> Caused by: org.apache.solr.common.SolrException: Attempted an 
> atomic/partial update to a child doc without indicating the _root_ somehow.
>          at 
> org.apache.solr.handler.component.RealTimeGetComponent.getInputDocument(RealTimeGetComponent.java:746)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.getUpdatedDocument(DistributedUpdateProcessor.java:689)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.doVersionAdd(DistributedUpdateProcessor.java:373)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.lambda$versionAdd$0(DistributedUpdateProcessor.java:336)
>          at 
> org.apache.solr.update.VersionBucket.runWithLock(VersionBucket.java:50)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:336)
>          at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:222)
>          at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
>  {noformat}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to