@Override public void setDelDocIds() { ZoieIndexReader<R>[] subReaders = getSequentialSubReaders(); for(ZoieIndexReader<R> subReader : subReaders) { subReader.setDelDocIds(); } }
@SuppressWarnings("unchecked") private ZoieMultiReader(DirectoryReader in, IndexReaderDecorator<R> decorator, ZoieSubReaderWrapper<R> wrapper) throws IOException { super(in, wrapper); _subZoieReaders = (List<ZoieSegmentReader<R>>) getSequentialSubReaders(); _decorator = decorator; _readerMap = new HashMap<String, ZoieSegmentReader<R>>(); _decoratedReaders = null; init(); }
@SuppressWarnings("unchecked") private ZoieMultiReader(DirectoryReader in, IndexReaderDecorator<R> decorator, ZoieSubReaderWrapper<R> wrapper) throws IOException { super(in, wrapper); _subZoieReaders = (List<ZoieSegmentReader<R>>) getSequentialSubReaders(); _decorator = decorator; _readerMap = new HashMap<String, ZoieSegmentReader<R>>(); _decoratedReaders = null; init(); }
public DocIDMapper<Object> getDocIDMapper(ZoieMultiReader<?> reader) { for(ZoieIndexReader<?>r : reader.getSequentialSubReaders()) { r.setDocIDMapper(NullDocIDMapper.INSTANCE); } return NullDocIDMapper.INSTANCE; } }
@Override public void markDeletes(LongSet delDocs, LongSet deletedUIDs) { ZoieIndexReader<R>[] subReaders = getSequentialSubReaders(); if(subReaders != null && subReaders.length > 0) { for(int i = 0; i < subReaders.length; i++) { ZoieSegmentReader<R> subReader = (ZoieSegmentReader<R>)subReaders[i]; subReader.markDeletes(delDocs, deletedUIDs); } } }
@Override public void commitDeletes() { ZoieIndexReader<R>[] subReaders = getSequentialSubReaders(); if(subReaders != null && subReaders.length > 0) { for(int i = 0; i < subReaders.length; i++) { ZoieSegmentReader<R> subReader = (ZoieSegmentReader<R>)subReaders[i]; subReader.commitDeletes(); } } }
@Override public void onIndexReaderCleanUp(ZoieIndexReader<IndexReader> indexReader) { if (indexReader instanceof ZoieMultiReader) { ZoieSegmentReader[] segments = (ZoieSegmentReader[]) ((ZoieMultiReader) indexReader).getSequentialSubReaders(); for (ZoieSegmentReader segmentReader : segments) { handleSegment(segmentReader); } } else if (indexReader instanceof ZoieSegmentReader) { handleSegment((ZoieSegmentReader) indexReader); } else { throw new UnsupportedOperationException("Only segment and multisegment readers can be handled"); } } private void handleSegment(ZoieSegmentReader segmentReader) {
public DocIDMapper<?> getDocIDMapper(ZoieMultiReader<?> multireader) { final ZoieSegmentReader<?>[] subreaders =(ZoieSegmentReader<?>[])(multireader.getSequentialSubReaders()); final int[] starts = multireader.getStarts(); for (int i = 0; i < subreaders.length; ++i){ ZoieSegmentReader<?> subReader = subreaders[i]; DocIDMapper<?> mapper = subReader.getDocIDMaper(); if (mapper == null){ mapper = new DocIDMapperImpl(subReader.getUIDArray()); } subReader.setDocIDMapper(mapper); } final DocIDMapper[] mappers = new DocIDMapper[subreaders.length]; for(int i=0; i< subreaders.length; i++) { mappers[i] = subreaders[i].getDocIDMaper(); } final int bound = subreaders.length-1; return new DefaultDocIDMapper(bound, mappers, starts); }
.getSequentialSubReaders()); final int[] starts = reader.getStarts();