Hi, 
Thanks for the reply ;)


> 
> this is all not public tot he code because it is also subject to change!
> 
> With Lucene 4.x, you can assume:
> directoryReader.leaves().get(i) corresponds to segmentsinfos.info(i)
> 
> WARNING: But this is only true if:
> - the reader is instanceof DirectoryReader
Yes, true. Thanks for the WARNING.


> - the segmentinfos were opened on the exact same commit point like the 
> directory reader. If you have IndexWriter concurrently committing in between, 
> this is no longer correct. To make this 100% correct, do 
> DirectoryReader.listCommits(), chose one single "defined" commit and use it 
> for DirectoryReader.open(CommitPoint) and the segmentInfos.read(Dir, 
> commitPoint.getSegmentFileName()). Ideally open the DirectoryReader first, so 
> it holds a lock, so the segments file may not be deleted before/while reading 
> the segmentInfos.

Yes, I have a lock after each commit, and cache all the segments that are newly 
created.



Thank you, 
Best regards,
Andi
                                          

Reply via email to