Example usage for org.apache.lucene.index SegmentReader getLiveDocs

List of usage examples for org.apache.lucene.index SegmentReader getLiveDocs

Introduction

In this page you can find the example usage for org.apache.lucene.index SegmentReader getLiveDocs.

Prototype

@Override
    public Bits getLiveDocs() 

Source Link

Usage

From source file:org.apache.blur.manager.IndexManager.java

License:Apache License

@SuppressWarnings("unchecked")
private static boolean isFiltered(int notAdjustedDocId, IndexReader reader, Filter filter) throws IOException {
    if (filter == null) {
        return false;
    }/*from   w ww.j  a v  a  2 s.  c  o  m*/
    if (reader instanceof BaseCompositeReader) {
        BaseCompositeReader<IndexReader> indexReader = (BaseCompositeReader<IndexReader>) reader;
        List<? extends IndexReader> sequentialSubReaders = BaseCompositeReaderUtil
                .getSequentialSubReaders(indexReader);
        int readerIndex = BaseCompositeReaderUtil.readerIndex(indexReader, notAdjustedDocId);
        int readerBase = BaseCompositeReaderUtil.readerBase(indexReader, readerIndex);
        int docId = notAdjustedDocId - readerBase;
        IndexReader orgReader = sequentialSubReaders.get(readerIndex);
        SegmentReader sReader = AtomicReaderUtil.getSegmentReader(orgReader);
        if (sReader != null) {
            SegmentReader segmentReader = (SegmentReader) sReader;
            DocIdSet docIdSet = filter.getDocIdSet(segmentReader.getContext(), segmentReader.getLiveDocs());
            DocIdSetIterator iterator = docIdSet.iterator();
            if (iterator == null) {
                return true;
            }
            if (iterator.advance(docId) == docId) {
                return false;
            }
            return true;
        }
        throw new RuntimeException("Reader has to be a SegmentReader [" + orgReader + "]");
    } else {
        throw new RuntimeException("Reader has to be a BaseCompositeReader [" + reader + "]");
    }
}