On Fri, Dec 5, 2008 at 5:40 AM, Laurence Rowe <[EMAIL PROTECTED]> wrote:

> 2008/12/4 Shalin Shekhar Mangar <[EMAIL PROTECTED]>:
>
>
> I think we have a slight misunderstanding here. Because there are many
> CMS processes it is possible that the same document will be updated
> concurrently (from different web requests). In this case two updates
> are sent (one by each process). The problem arises when the two update
> requests are processed in a different order to the original database
> transactions.


Ok, I think I understand your problem now. If multiple processes send update
requests, they will overwrite each other which is not what you want.


> I guess the only way to achieve consistency is to stage my indexed
> data in a database table and trigger a DataImportHandler to perform
> delta imports after each transaction.


I agree. You need to use a transactional mechanism to ensure consistency,
then you should use a database. Periodically, you can index this particular
table into Solr. However, if you have multi-valued fields, you may run into
problems.

One more thing that you can think about, depending on your use-case, is
whether a small amount of stale data is OK? Do you really need things
consistent and upto date all the time in Solr? I also know of cases where
people have removed frequently changing fields from Solr and fetched them
from DB at the time of page render. Ofcourse, that doesn't work when you
need to sort by that frequently changind field.


> >> From what I can tell this conditional indexing feature is not
> >> supported by Solr. Might it be supported by Lucene but not exposed by
> >> Solr?
> >>
> >
> > No this is not supported by either of Lucene/Solr.
>
>
> This is a pity, eventual consistency is a nice model.
>
> Regards,
>
> Laurence
>



-- 
Regards,
Shalin Shekhar Mangar.

Reply via email to