IndexUpgraderTool

Lucene 发行版包含 一个工具,用于将 索引从以前的 Lucene 版本升级到当前文件格式。

该工具可从命令行使用,也可以在 Java 中实例化并执行。

能将索引从上一个主要版本升级到当前主要版本。

这意味着,例如,任何 Solr 8.x 发行版中的 IndexUpgraderTool 只能处理 7.x 发行版的索引,而不能处理 Solr 6.x 或更早版本中的索引。

如果你当前使用的是两个或更多主要版本之前的发行版,例如从 Solr 6x 迁移到 Solr 8x,则需要重新索引你的内容。

IndexUpgraderTool 执行强制合并(优化)到一个段,这可能是不希望的。

在 Solr 发行版中,Lucene 文件位于 ./server/solr-webapp/webapp/WEB-INF/lib 中。运行该工具时,你需要在类路径中包含 lucene-core-<version>.jarlucene-backwards-codecs-<version>.jar

java -cp lucene-core-9.9.2.jar:lucene-backward-codecs-9.9.2.jar org.apache.lucene.index.IndexUpgrader [-delete-prior-commits] [-verbose] /path/to/index

此工具仅保留索引中的最后一次提交。因此,如果传入索引有多个提交,则该工具默认拒绝运行。指定 -delete-prior-commits 以覆盖此设置,允许该工具删除除最后一次提交之外的所有提交。

升级大型索引可能需要很长时间。根据经验,升级过程每分钟处理大约 1 GB。

如果在执行之前对索引进行了部分升级(例如,添加了文档),此工具可能会重新排序文档。如果你的应用程序依赖于文档 ID 的单调性(即,保留添加到索引中的文档的顺序),请执行完全优化。