碰到这种问题,很棘手,特别是设计的到的索引文件很大的时候,这种问题,是由于索引损坏引起的。
查看lucene的官方文档,发现lucene其实提供了索引的修复和检查工具。具体使用方法如下。
java –cp /solr/lucene/lucene-core-4.0.jar org.apache.lucene.index.CheckIndex /solr/core0/data/index -fix
CheckIndex 还有其他参数,具体看以查看它的help
注意,使用 CheckIndex 的时候,必须要要保证此时索引,没有被使用和写入。
如果运行这个工具,出现 java.io.FileNotFoundException core0/data/index/_1tgo.si,这种类型的错误,可以使用一个技巧,拷贝一个相同后缀的文件,来重命名为该文件,使修复可以进行下去。