If you need to combine indexes from two different projects or from multiple servers previously used in a distributed configuration, you can use either the IndexMergeTool included in lucene-misc
or the CoreAdminHandler
.
To merge indexes, they must meet these requirements:
-
The two indexes must be compatible: their schemas should include the same fields and they should analyze fields the same way.
-
The indexes must not include duplicate data.
Optimally, the two indexes should be built using the same schema.
Using IndexMergeTool
To merge the indexes, do the following:
-
Make sure that both indexes you want to merge are closed.
-
Issue this command:
java -cp $SOLR/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-VERSION.jar:$SOLR/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-VERSION.jar org/apache/lucene/misc/IndexMergeTool /path/to/newindex /path/to/old/index1 /path/to/old/index2
This will create a new index at
/path/to/newindex
that contains both index1 and index2. -
Copy this new directory to the location of your application’s solr index (move the old one aside first, of course) and start Solr.
Using CoreAdmin
The MERGEINDEXES
command of the CoreAdminHandler can be used to merge indexes into a new core – either from one or more arbitrary indexDir
directories or by merging from one or more existing srcCore
core names.
See the CoreAdminHandler section for details.