Roman, I don't fully understand your question. After segment is flushed it's never changed, hence segment-local docids are always the same. Due to merge segment can gone, its' docs become new ones in another segment. This is true for 'global' (Solr-style) docnums, which can flip after merge is happened in the middle of the segments' chain. As well you are saying about segmented cache I can propose you to look at CachingWrapperFilter and NoOpRegenerator as a pattern for such data structures.
On Sat, Nov 23, 2013 at 9:40 AM, Roman Chyla <roman.ch...@gmail.com> wrote: > Hi, > docids are 'ephemeral', but i'd still like to build a search cache with > them (they allow for the fastest joins). > > i'm seeing docids keep changing with updates (especially, in the last index > segment) - as per > https://issues.apache.org/jira/browse/LUCENE-2897 > > That would be fine, because i could build the cache from diff (of index > state) + reading the latest index segment in its entirety. But can I assume > that docids in other segments (other than the last one) will be relatively > stable? (ie. when an old doc is deleted, the docid is marked as removed; > update doc = delete old & create a new docid)? > > thanks > > roman > -- Sincerely yours Mikhail Khludnev Principal Engineer, Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>