The Lucene distribution includes a tool that upgrades an index from previous Lucene versions to the current file format.
The tool can be used from command line, or it can be instantiated and executed in Java.
Indexes can only be upgraded from the previous major release version to the current major release version.
This means that the IndexUpgrader Tool in any Solr 7.x release, for example, can only work with indexes from 6.x releases, but cannot work with indexes from Solr 5.x or earlier.
If you are currently using an earlier release such as 5.x and want to move more than one major version ahead, you need to first upgrade your indexes to the next major version (6.x), then again to the major version after that (7.x), etc.
In a Solr distribution, the Lucene files are located in
./server/solr-webapp/webapp/WEB-INF/lib. You will need to include the
lucene-backwards-codecs-<version>.jar on the classpath when running the tool.
java -cp lucene-core-7.4.0.jar:lucene-backward-codecs-7.4.0.jar org.apache.lucene.index.IndexUpgrader [-delete-prior-commits] [-verbose] /path/to/index
This tool keeps only the last commit in an index. For this reason, if the incoming index has more than one commit, the tool refuses to run by default. Specify
-delete-prior-commits to override this, allowing the tool to delete all but the last commit.
Upgrading large indexes may take a long time. As a rule of thumb, the upgrade processes about 1 GB per minute.
This tool may reorder documents if the index was partially upgraded before execution (e.g., documents were added). If your application relies on monotonicity of document IDs (i.e., the order in which the documents were added to the index is preserved), do a full optimize instead.