Solr segments.gen和segments_N文件还原

时间:2014-07-15 14:15:05

标签: solr lucene

不幸的是,我使用checked clean index选项运行完整数据导入。我可以在删除之前将整个索引复制到备份目录(我杀了solr),但是segments.gen和segments_N文件已经更新,所以每当我将索引复制回原始目录时,所有索引文件都会在启动时被删除Solr。

我认为它被删除了,因为段文件不包含我的索引文件信息 - 因为段文件指向"在清理后#34;索引文件。

我试图以某种方式重建段文件,但不幸的是我也没有找到如何使用solr代码更改的方法。

有没有可能做到这一点?

1 个答案:

答案 0 :(得分:0)

我猜想,由于它的声音,segment_N和segments.gen文件不太可能丢失,但您可以尝试使用CheckIndex

您可以从命令行运行它,例如:

java -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex path/to/index -fix

或者您可以在自己的实现中调用它的方法,例如:

Directory directory = FSDirectory.open(new File("path/to/index"));
CheckIndex check = new CheckIndex(directory);
CheckIndex.Satus status = check.checkIndex();
check.fixIndex(status);