当我试图创建一个new IndexSearcher(fsDir)
类的对象时,它抛出了IOException read past EOF
。搜索索引不是基于内存的,而是基于文件系统的(使用FSDirectory
lucene类)。
我谷歌了一下,找到了this的那个
没有权限问题,也没有锁定,我和lockhunter确认过了
所以必须有写权限,并且没有人在使用该目录。
它在过去的2-3个月里一直在工作。昨天突然停止了工作,所有的索引文件都在文件夹中。
这个异常还可能导致什么呢?有没有这样的东西,如果索引是2-3个月前(某段时间),那么它就会过期,并给出这个例外?
发布于 2012-10-03 09:58:26
我得到了答案,花了很多时间在上面,它会给出这个例外(IOException阅读过去的EOF):
If Directory does not give write permission
If someone else is using(locked)
If some segment is corrupted
对于我的情况,它被损坏了:(。但是Exception并没有说明这一点(可以告诉一些FIleCurroptedException
)。这可能对其他人有帮助。
发布于 2016-01-13 16:10:56
每次我得到它,它都有两个同名的索引文件(记录) (key -我使用的是mongo-lucene)。我删除了其中一条缓冲区为空的记录,它让我不必重新构建整个索引就可以继续操作。这似乎是一个多线程的问题。另一个触发器似乎是索引非文本文件
https://stackoverflow.com/questions/12692400
复制相似问题