创建IndexSearcher抛出IOException读取过EOF

时间:2012-10-02 14:35:33

标签: java lucene

当我尝试创建new IndexSearcher(fsDir)类的对象时,它会抛出IOException read past EOF。搜索索引不是基于RAM的,它是基于NFS的(使用FSDirectory lucene类)。

我用Google搜索并得到this一个

没有权限问题,也没有锁定,我使用lockhunter

进行了检查

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

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

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

2 个答案:

答案 0 :(得分:6)

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

If Directory does not give write permission
If someone else is using(locked)
If some segment is corrupted

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

答案 1 :(得分:0)

每次我得到它,它有两个同名的索引文件(记录)(键 - 我正在使用mongo-lucene)。我删除了一个带有空缓冲区的记录,它让我继续前进,而不必重新构建整个索引。这似乎是一个多线程问题。另一个触发器似乎是索引非文本文件