Generally it will be more a matter of application semantics. Solr makes it reasonably efficient to completely overwrite the existing document and fields, if that is what you want. But, in some applications, it may be desirable to preserve some or most of the existing fields; whether that is easier to accomplish be completely regenerating the full document from data stored elsewhere in the application (e.g., a RDBMS) or doing a selective write will depend on the application. In some apps, the rest of the data may not be maintained separately, so a selective write makes more sense. Or, maybe the existing document contains metadata fields such as timestamps or counters that would get reset if the whole document was regenerated.

-- Jack Krupansky

-----Original Message----- From: Mingfeng Yang
Sent: Friday, March 08, 2013 5:41 PM
To: solr-user@lucene.apache.org
Subject: Re: update some fields vs replace the whole document

Then what's the difference between adding a new document vs.
replacing/overwriting a document?

Ming-


On Fri, Mar 8, 2013 at 2:07 PM, Upayavira <u...@odoko.co.uk> wrote:

With an atomic update, you need to retrieve the stored fields in order
to build up the full document to insert back.

In either case, you'll have to locate the previous version and mark it
deleted before you can insert the new version.

I bet that the amount of time spent retrieving stored fields is matched
by the time saved by not having to transmit those fields over the wire,
although I'd be very curious to see someone actually test that.

Upayavira

On Fri, Mar 8, 2013, at 09:51 PM, Mingfeng Yang wrote:
> Generally speaking, which has better performance for Solr?
> 1. updating some fields or adding new fields into a document.
> or
> 2. replacing the whole document.
>
> As I understand,  update fields need to search for the corresponding doc
> first, and then replace field values. While replacing the whole > document
> is just like adding new document.  Is it right?


Reply via email to