You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by Apache Wiki <wi...@apache.org> on 2009/06/10 18:25:31 UTC

[Solr Wiki] Update of "MergingSolrIndexes" by ShalinMangar

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.

The following page has been changed by ShalinMangar:
http://wiki.apache.org/solr/MergingSolrIndexes

The comment on the change is:
Adding note on merging through CoreAdmin

------------------------------------------------------------------------------
  ##acl MoinPagesEditorGroup:read,write,delete,revert All:read
  #format wiki
  #language en
- == How to Merge Indexes ==
- Sometimes you have more than one solr index and you want to merge them together into a single index. One good way to do this 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.
+ = Merging Solr Indexes =
+ Sometimes you have more than one Solr index and you want to merge them together into a single index.
  
-  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
+ [[TableOfContents(3)]]
  
-  3. Make sure both indexes you want to merge are closed. 
+ == 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:
+ 
+  # 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. 
+ 
-  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
+  # 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.