solr合并集合

     当需要合并两个不同项目或者是多个分开配置的服务器时,你既可以使用lucene-misc里面的IndexMergeTool工具,也可以使用CoreAdminHandler。

      要合并索引,必须满足如下要求: 1.两个索引必须兼容:schema需要包含相同的字段,并且字段分析方法相同。 2.必须不包含相同数据。 最好两个索引是用相同的schema.xml文件生成的。

一.使用IndexMergeTool

1.找到lucene-core和lucene-misc JAR包。可以通过solr.war解压得到(jar xvf solr.war).这两个JAR包应该在/WEB-INF/lib下。

2.拷贝到好找的地方。

3.保证两个要合并的集合都处于关闭状态。

4.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

创建一个/path/to/newindex的新索引,包含index1和index2

5.拷贝这个新文件夹到你应用的solr索引(先移除旧的),启动solr。

二.使用CoreAdmin

这个方法使用CoreAdminHandler来运行MERGEINDEXES命令,包含indexDir和srcCore两个参数。

indexDir:用来定义要合并的core的索引数据所在的文件夹,然后将他们合并到一个在开始合并之前已经存在的第三方core中。索引必须在Solr host所在的磁盘中,这样会让分布式环境用起来比较笨重。有了indexDir参数之后,需要在相应的core中调用commit(这样IndexWriter才会关闭)。

posted @ 2018-05-09 13:10  Arli  阅读(366)  评论(0编辑  收藏  举报