zoukankan      html  css  js  c++  java
  • 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才会关闭)。

  • 相关阅读:
    java Semaphore的介绍和使用
    java CyclicBarrier的介绍和使用
    java CountDownLatch 使用介绍
    android模拟器不能上网设置
    计算几何题集
    BZOJ1004: [HNOI2008]Cards
    BZOJ1029: [JSOI2007]建筑抢修
    BZOJ1037: [ZJOI2008]生日聚会Party
    BZOJ1083: [SCOI2005]繁忙的都市
    Java开发笔记(一百一十四)利用Socket传输文本消息
  • 原文地址:https://www.cnblogs.com/arli/p/9013594.html
Copyright © 2011-2022 走看看