lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charlie Hull <char...@flax.co.uk>
Subject Re: DovValues and in-place udpates
Date Mon, 12 Feb 2018 17:11:59 GMT
On 12/02/2018 16:02, Brian Yee wrote:
> I asked a question here about fast inventory updates last week and I was recommended
to use docValues with partial in-place updates. I think this will work well, but there is
a problem I can't think of a good solution for.
> 
> Consider this scenario:
> InStock = 1 for a product.
> InStock changes to 0 which triggers a fast in-place update with docValues.
> But it also triggers a slow update that will rebuild the entire document. Let's say that
takes 10 minutes because we do updates in batches.
> During that 5 minutes, InStock changes again to 1 which triggers a fast update to solr.
So in Solr InStock=1 which is correct.
> The slow update finishes and overwrites InStock=0 which is incorrect.
> 
> How can we deal with this situation?
> 
It's a slightly crazy idea, but in the past we've solved a similar 
problem by building a custom Lucene codec that is backed by a Redis 
database. You change the stock value in Redis and Lucene doesn't 
actually notice and re-index.
http://www.flax.co.uk/blog/2012/06/22/updating-individual-fields-in-lucene-with-a-redis-backed-codec/

Not sure if this is a better way than DocValues, it was quite a while 
ago and Lucene has moved on a bit since then....

Cheers

Charlie

-- 
Charlie Hull
Flax - Open Source Enterprise Search

tel/fax: +44 (0)8700 118334
mobile:  +44 (0)7767 825828
web: www.flax.co.uk

Mime
View raw message