2

我正在尝试通过我在具有两个分片的 solr 云中的 java 应用程序动态创建核心。

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)中动态创建核心的标准方法是什么?

4

2 回答 2

1

我已经成功地使用 solr4.4 创建了集合,该集合具有两个分片并且没有使用集合 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);

这将创建一个带有compositeID 路由器的集合

myconf是集群启动时上传到 zoo keeper 的配置名称。

于 2014-01-17T09:43:02.440 回答
0

我也在使用 Solr 4.1.0,并且在创建核心时遇到了一些麻烦。我只使用一个分片,但我在这里回答了类似的另一个问题。

于 2013-07-23T20:32:27.927 回答