Differences between revisions 4 and 5
Revision 4 as of 2009-06-10 16:25:27
Size: 2494
Editor: ShalinMangar
Comment: Adding note on merging through CoreAdmin
Revision 5 as of 2009-06-11 06:24:39
Size: 2492
Editor: NoblePaul
Comment: formatting
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
 # Find the lucene jar file that your version of solr is using. You can do this by copying your solr.war file somewhere and unpacking it (jar xvf solr.war). Your lucene jar file should be in WEB-INF/lib. It is probably called something like lucene-core-2007-05-20_00-04-53.jar. Copy it somewhere easy to find.

 #
Download a copy of lucene from http://www.apache.org/dyn/closer.cgi/lucene/java/ and unpack it. The file you're interested in is contrib/misc/lucene-misc-VERSION.jar

 # Make sure both indexes you want to merge are closed.

 #
Issue this command: java -cp /path/to/lucene-core-VERSION.jar:/path/to/lucene-misc-VERSION.jar org/apache/lucene/misc/IndexMergeTool /path/to/newindex /path/to/index1 /path/to/index2
 1. Find the lucene jar file that your version of solr is using. You can do this by copying your solr.war file somewhere and unpacking it (jar xvf solr.war). Your lucene jar file should be in WEB-INF/lib. It is probably called something like lucene-core-2007-05-20_00-04-53.jar. Copy it somewhere easy to find.
 2. Download a copy of lucene from http://www.apache.org/dyn/closer.cgi/lucene/java/ and unpack it. The file you're interested in is contrib/misc/lucene-misc-VERSION.jar
 3. Make sure both indexes you want to merge are closed.
 4. Issue this command: java -cp /path/to/lucene-core-VERSION.jar:/path/to/lucene-misc-VERSION.jar org/apache/lucene/misc/IndexMergeTool /path/to/newindex /path/to/index1 /path/to/index2

Merging Solr Indexes

Sometimes you have more than one Solr index and you want to merge them together into a single index.

TableOfContents(3)

Merging Through CoreAdmin

<!> ["Solr1.4"]

CoreAdminHandler now supports merging one or more indexes into another index (since Solr 1.4).

http://localhost:8983/solr/admin?action=mergeindexes&core=core0&indexDir=/opt/solr/core1/data/index&indexDir=/opt/solr/core2/data/index

The above command will merge the indexes of core1 and core2 into core0. Before executing this command, one must make sure to call commit on core1 and core2 (in order to close IndexWriter) and no writes should happen on core1 and core2 until the merge command completes. Failure to do so may corrupt the core0 index.

Once the merge is completed, a commit should be called on core0 to make the changes visible to searchers.

Merging Through Lucene IndexMergeTool

Another way is to use the IndexMergeTool that comes as part of lucene-misc. In order to do this:

  1. Find the lucene jar file that your version of solr is using. You can do this by copying your solr.war file somewhere and unpacking it (jar xvf solr.war). Your lucene jar file should be in WEB-INF/lib. It is probably called something like lucene-core-2007-05-20_00-04-53.jar. Copy it somewhere easy to find.
  2. Download a copy of lucene from http://www.apache.org/dyn/closer.cgi/lucene/java/ and unpack it. The file you're interested in is contrib/misc/lucene-misc-VERSION.jar

  3. Make sure both indexes you want to merge are closed.
  4. Issue this command: java -cp /path/to/lucene-core-VERSION.jar:/path/to/lucene-misc-VERSION.jar org/apache/lucene/misc/IndexMergeTool /path/to/newindex /path/to/index1 /path/to/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.

Example

java -cp /tmp/lucene-core-2007-05-20_00-04-53.jar:./lucene-2.2.0/contrib/misc/lucene-misc-2.2.0.jar org/apache/lucene/misc/IndexMergeTool ./newindex ./app1/solr/data/index ./app2/solr/data/index

MergingSolrIndexes (last edited 2012-08-15 04:21:03 by cpe-68-175-0-233)