On 1/8/2018 4:05 AM, kshitij tyagi wrote:
What are the major differences between atomic and in-place updates, I have gone through the documentation but it does not give detail internal information.
Atomic updates are nearly identical to simple indexing, except that the existing document is read from the index to populate a new document along with whatever updates were requested, then the new document is indexed and the old one is deleted.
1. Does doing in-place update prevents solr cache burst or not, what are the benefits of using in-place updates?
In-place updates are only possible on a field where only docValues is true. The settings for things like indexed and stored must be false.
An in-place update finds the segment containing the document and writes a whole new file containing the value of every document in the segment for the updated field. If the segment contains ten million documents, then information for ten million values will be written for a single document update.
I want to update one of the fields of the documnet but I do not want to burst my cache.
When the index changes for ANY reason, no matter how the change is accomplished, caches must be thrown away when a new searcher is built. Lucene and Solr have no way of knowing that a change doesn't affect some cache entries, so the only thing it can do is assume that all the information in the cache is now invalid. What you are asking for here is not possible at the moment, and chances are that if code was written to do it, that it would be far slower than simply invalidating the caches and doing autowarming.
Thanks, Shawn