package com.senseidb.clue.api; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.SegmentInfos; import org.apache.lucene.store.Directory; public class DefaultIndexReaderFactory implements IndexReaderFactory { private Directory idxDir = null; private IndexReader reader = null; public DefaultIndexReaderFactory() { } @Override public void initialize(Directory idxDir) throws Exception { this.idxDir = idxDir; refreshReader(); } @Override public void refreshReader() throws Exception { if (reader != null) { reader.close(); } reader = DirectoryReader.open(idxDir); } @Override public IndexReader getIndexReader() { return reader; } @Override public void shutdown() throws Exception { if (reader != null) { reader.close(); reader = null; } } }