我正在测试Lucene MVC web应用程序,我使用的是ASP.NET索引文件。对于每次测试,我都需要重建Lucene索引,然后强制我的web应用程序重新读取这些索引文件。我发现的唯一方法是回收应用程序池,但它相当慢。
有没有人知道一种不用回收应用程序池就能从光盘中重新读取文件的方法?
发布于 2010-08-02 22:20:58
在执行测试时,您可能没有对使用的IndexWriter/Reader/Searcher调用Close。如果您没有这样做,而您使用的是FSDirectory类(它代表一个文件系统),那么就会创建锁文件,从而阻止打开目录中的索引。
确保使用try/finally块来确保对象是关闭的。
我个人创建了一个扩展方法,它接受一个对象并返回一个IDisposable实现,当Dispose被调用时,它将调用Close,允许它在使用语句时使用(我在类型上使用反射来获取Close方法,然后我生成一个在Dispose方法中调用的λ表达式)。
或
https://stackoverflow.com/questions/3370139
复制相似问题