索引时,Lucene 经常会泄露未封闭的 reader、writer 等。
有没有办法在每次迭代结束时关闭 Lucene 中的所有 Closeables?
恐怕没有。
Lucene 为您提供IndexSearcher,IndexReader和IndexWriter. 不关闭它们中的任何一个只会导致文件描述符泄漏,并且几乎没有办法解决它。虽然有一些技巧:
SearcherManager. 然而,这仍然需要调用manager.release(s)并且不适用于作者/读者。.close()调用放入终结器中。是的,我知道它很脏。但它有效!AutoCloseable在 try-with-resources 语句中实现和使用它们,以便自动关闭。理想情况下,所有这些类都应该实现AutoCloseable它们自己,并且希望它们在 Lucene 切换到 Java 7 时实现。