首页 > 解决方案 > 使用 SolrJ 中的 CollectionAdminRequest.Create 创建集合

问题描述

如何在 SolrJ 中使用 CollectionAdminRequest.Create 在使用 zookeeper 运行的 SolrCloud 中创建新集合。

我试过了

    public void createIndex(String targetUuid) {
            HttpSolrClient solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/").build();


            try {
                // 1. Create Index with two shards and one replicas
                if(uploadConfigset()) {
                    //Error Here    
                    CollectionAdminRequest.Create creator = new CollectionAdminRequest.Create(targetUuid,"tg_configset",1,2,0,0);
                    creator.setMaxShardsPerNode(2);
                    creator.process(solrClient);
                }
            } catch (IOException | SolrServerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

但不能使用 CollectionAdminRequest.Create 因为它的构造函数是“受保护的”

标签: solrsolrjsolrcloud

解决方案


使用CollectionAdminRequest.createCollection方法之一。您不应再直接调用构造函数,因为createCollectionCollectionAdminRequest 类上的方法已弃用它。

CollectionAdminRequest.Create creator = CollectionAdminRequest.createCollection("newcollection", "tg_configset", 1, 2)

这仍然返回一个CollectionAdminRequest.Create对象,因此其余代码应该按您的预期工作。


推荐阅读