编制索引时,通常Lucene leaked unclosed readers, writers, etc。
有没有办法在每次迭代结束时关闭Lucene中的所有Closeables?
答案 0 :(得分:2)
我担心没有。
Lucene为您提供IndexSearcher
,IndexReader
和IndexWriter
。不关闭它们中的任何一个只会导致文件描述符泄漏,并且几乎没有办法解决它。但是技术很少:
SearcherManager
。但是,这仍然需要调用manager.release(s)
,不适用于作家/读者。.close()
调用放入终结器中。是的,我知道它很脏。但它有效!AutoCloseable
并在try-with-resources语句中使用它们,以便自动关闭。理想情况下,所有这些类都应该自己实现AutoCloseable
,并希望它们在Lucene切换到Java 7时能够实现。