solr云中创建Solr核心(solr 4.1.0)

问题描述:

我试图通过我的java应用程序在具有两个碎片的solr云中动态创建核心。solr云中创建Solr核心(solr 4.1.0)

CloudSolrServer cloudSolrServer = new CloudSolrServer("localhost:9983", new LBHttpSolrServer ("http://localhost:8983/solr")); 
CoreAdminRequest.Create req = new CoreAdminRequest.Create() { 

     private static final long serialVersionUID = -8825247378713661625L; 

      @Override public SolrParams getParams() { 
      ModifiableSolrParams modifiableSolrParams =  (ModifiableSolrParams) super.getParams(); 
      modifiableSolrParams.set("collection.configName", "mycore"); 
      return modifiableSolrParams; 
      } 
     }; 

req.setInstanceDir("/solr/master/mycorepath"); 
req.setCollection("mycore"); 

CoreAdminResponse res = req.process(cloudSolrServer.getLbServer()); 

但是我得到的错误: 指定配置中的ZooKeeper不存在:mycore

当我在Solr管理控制台检查我发现集“mycore”没有完全建立[即它没有文件夹符号],并且没有名称为“mycore”的配置。

我该如何解决这个问题。在2个分片solr云(solr 4.1.0)中动态创建核心的标准方式是什么?

我也在使用Solr 4.1.0,并且在创建内核时遇到了一些麻烦。我只使用一个碎片,但我回答here.

我已经成功地创建集合使用集合API

CloudSolrServer cs = new CloudSolrServer("localhost:9983"); 

CollectionAdminResponse res=CollectionAdminRequest.createCollection("testCollection", 2, 1, 1, "127.0.1.1:7574_solr,127.0.1.1:8983_solr", "myconf", null, cs); 

这将创建一个有两个碎片,并没有副本solr4.4沿着类似的路线另一个问题使用compositeID路由器收集

myconf是在集群启动期间上载到动物园饲养员的配置名称。