我正在使用Lucene 4.8.0,并且我有一个无法关闭的DirectoryReader。当我尝试时,出现以下错误:
原因:java.lang.RuntimeException:java.io.IOException:句柄无效 在apache.lucene.util.IOUtils.reThrowUnchecked(IOUtils.java:368) 在apache.lucene.index.SegmentCoreReaders.notifyCoreClosedListeners(SegmentCoreReaders.java:203) 在apache.lucene.index.SegmentCoreReaders.decRef(SegmentCoreReaders.java:183) 在apache.lucene.index.SegmentReader.doClose(SegmentReader.java:258) 在apache.lucene.index.IndexReader.decRef(IndexReader.java:243) 在apache.lucene.index.StandardDirectoryReader.doClose(StandardDirectoryReader.java:364) 在apache.lucene.index.IndexReader.decRef(IndexReader.java:243) 在apache.lucene.index.IndexReader.close(IndexReader.java:479)
我的代码如下:
FSDirectory indexDir = null;
DirectoryReader dirReader = null
try{
indexDir = new SimpleFSDirectory(new File(baseDir + "/index"),null);
dirReader = DirectoryReader.open(indexDir);
//operations
finally {
if (dirReader != null) {
dirReader.close();
}
if (indexDir != null) {
indexDir.close();
}
}
但是这在dirReader.close()处崩溃。我是Lucene的新手,如果我错过了一些众所周知或显而易见的事情,我感到抱歉。