java - 关闭 directoryReader 时如何修复“句柄无效”?
问题描述
我正在使用 Lucene 4.8.0,并且我有一个无法关闭的 DirectoryReader。当我尝试时,出现以下错误:
引起:java.lang.RuntimeException:java.io.IOException:句柄在 apache.lucene.index.SegmentCoreReaders.notifyCoreClosedListeners(SegmentCoreReaders.java 的 apache.lucene.util.IOUtils.reThrowUnchecked(IOUtils.java:368) 处无效: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 的新手,如果我错过了一些众所周知或明显的东西,我很抱歉。
解决方案
推荐阅读
- reactjs - ScaleBy 无法将焦点设置为 svg 中的路径
- node.js - 打字稿说 cwd 在 Process 上不存在
- java - 使用java流从嵌套数组中获取minDate
- java - requireActivity().getApplicationContext() “可能会产生 NullPointerExeption”
- ruby-on-rails - SocketError: 无法打开到 rubygmes.org:443 的 TCP 连接
- python - 如何从数据框中的字典列表中访问值?
- javascript - React 将字符串解析为 html 并使用 forwardRef 将函数应用于 DOM
- c# - Swashbuckle Swagger UI 未获得正确的 url 权限被拒绝
- python - 每月项目数在 CreateView 中有效,但在 TemplateView 中无效
- unity3d - 如何从 json 文件中读取数据?