2017-06-18 84 views
-1

我是solr中的新手,我想通過使用java代碼在solr中創建一個新的內核,我不想通過solr的終端和GUI創建它,這是我正在使用的代碼,我正在使用6.2.1 solr版本,請幫助我。 thanx提前。所有的如何使用java代碼在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); 

和作品。沒有以前的操作,你的代碼只能拋出異常。

相關問題