不幸的是,我使用checked clean index选项运行完整数据导入。我可以在删除之前将整个索引复制到备份目录(我杀了solr),但是segments.gen和segments_N文件已经更新,所以每当我将索引复制回原始目录时,所有索引文件都会在启动时被删除Solr。
我认为它被删除了,因为段文件不包含我的索引文件信息 - 因为段文件指向"在清理后#34;索引文件。
我试图以某种方式重建段文件,但不幸的是我也没有找到如何使用solr代码更改的方法。
有没有可能做到这一点?
答案 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);