Hi, I have a question about the Index Readers in Lucene. As far as I understand from the documentation, with the Lucene 4, we can create an Index Reader from DirectoryReader.open(directory);
>From the code of the DirectoryReader, I have seen that it uses the >SegmentReader to create the reader. To get all the SegmentReaders we have to >loop through the AtomicReaderContexts that we can get from the >"dirReader.leaves()"; Am I correct until here? Did I miss something from the whole picture? My question is: I want to associate each segment to its AtomicReaderContext. I have an application that caches information from each segment, and I want to keep the reference to the current opened segments. I have found a way to do that but that is not elegant : I could associate the reader.toString() method to each of the segment information. SegmentInfos sis = new SegmentInfos(); sis.read(open); for (int i = 0; i < sis.size(); i ++) { segmentInfo[i] = sis.info(i); } List<AtomicReaderContext> leaves = dirReader.leaves(); System.out.println(leaves.size()); for (AtomicReaderContext context : leaves) { checkIfExist(segmentInfo(i), context.reader().toString()); //here the solution is that I use the toString() method to extract the information of the segment. I cannot extract the information of the segment because it is protected } Do you have any clue whether it is possible to have this mapping in a different way? Thanks in advance, Best regards, Andi