如何使用java代码在solr中创建新核心?

时间:2017-06-18 12:02:05

标签: solr

我是solr中的新手,我想通过使用java代码在solr中创建一个新的核心,我不想通过终端和solr的GUI创建它,这是我正在使用的代码,我正在使用6.2。 1版solr,请帮帮我。提前完成。

           coreName="metademo";
          String solrDir = "/home/manish/Downloads/solr-6.2.1/server/solr/";

        String baseSolrUrl ="http://localhost:8983/solr/";
        CoreAdminRequest.Create create = new CoreAdminRequest.Create(); 
        create.setCoreName("metademo"); 
        create.setInstanceDir(solrDir +File.separator ); 
        SolrClient client2=new   HttpSolrClient.Builder(baseSolrUrl).build();

        create.setDataDir(solrDir + File.separator + coreName + File.separator + "data"); 
        HttpSolrServer solrServer1 = new HttpSolrServer(solrDir,client); 
        CoreAdminRequest.createCore(coreName, solrDir, client2);
        create.createCore(coreName, solrDir, client2);
        System.out.println("Created core with name: " + coreName); 

1 个答案:

答案 0 :(得分:2)

首先,您必须在 solr目录 中创建 核心文件夹 (在您的情况下) :/home/manish/Downloads/solr-6.2.1/server/solr/metademo)。

此文件夹必须与您在java代码中使用的名称相同。

然后在这个新的核心目录(在你的情况下名为“metademo”)中复制来自/.../solr-6.2.1/server/solr/configsets/basic_configs,即所谓的/conf目录。

复制后,在/.../solr-6.2.1/server/solr/metademo/conf文件夹中,您必须更改managed-schemaschema.xml文件的名称。

我试试这个:

String coreName = "metademo";
String solrDir = "/.../solr-6.2.1/server/solr/metademo";
String baseSolrUrl = "http://localhost:8983/solr/";
SolrClient client = new HttpSolrClient(baseSolrUrl);
CoreAdminRequest.Create createRequest = new CoreAdminRequest.Create();
createRequest.setCoreName(coreName);
createRequest.setInstanceDir(solrDir);
createRequest.process(client);

并且有效。如果没有以前的操作,您的代码只能抛出异常。