我得到Lock obtain timed out
索引文件夹完全空的异常。
在我尝试使用以下代码创建索引的那一刻,会引发此异常:
IndexWriter writer = new IndexWriter(directory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED)
我怎么可能解决这个错误?
有几种可能的原因:
- 您的目录没有足够的访问权限。要解决此问题,请右键单击目录>properties>security>确保您的进程IIS_IUSRS具有权限
- 另一个进程同时使用该目录。使用锁定猎人检测哪个进程正在使用此文件
- 目录中的 write.lock 是一个孤立文件,最初它是创建的,但由于进程被杀死,它一直留在那里。
- 您没有优化/提交/处置您打开的编写器
提交/释放编写器:
writer.Optimize();
writer.Commit();
writer.Dispose();
我遇到了这个问题,然后有一个IProviderContext的实例,它没有被优化/提交/处置。
我希望这能解决你的问题