创建IndexSearcher抛出IOException读取过EOF

Elb*_*bek 1 java lucene

当我试图创建一个new IndexSearcher(fsDir)类的对象时,它正在抛出IOException read past EOF.搜索索引不是基于RAM的,它是基于NFS的(使用FSDirectorylucene类).

我一派,得到了一个

没有许可问题,也没有锁定,我用lockhunter检查

所以必须有写权限,没有人使用该目录.

这是在过去2-3个月的工作.昨天突然停止工作,文件夹中的所有索引文件.

还有什么可能导致这个例外?有没有像索引是2-3个月(某个时期),然后它过期并给出这个例外?

Elb*_*bek 6

我得到了答案,花了很多时间,它会给出异常(IOException读取过EOF):

If Directory does not give write permission
If someone else is using(locked)
If some segment is corrupted
Run Code Online (Sandbox Code Playgroud)

对于我的情况它已损坏:(.但Exception没有说明这一点(可以告诉一些FIleCurroptedException).这可能对其他人有所帮助.