我是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);
答案 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-schema
中schema.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);
并且有效。如果没有以前的操作,您的代码只能抛出异常。