solrj操作core

最近開發需要用到solr全文檢索,由於有多種數據,希望把這些數據所見的索引進行分類查詢,於是就瞭解了solr的multiCore。在網上找了很多資料沒有找到我想要的例子,最終通過羣裏的一些朋友幫助熟悉了CoreAdminRequest這個類對我很有用,於是就根據提供的api最終實現了core的添加。以下是代碼 
Java代碼 
  1. try {  
  2.             //連接solr服務器  
  3.             HttpSolrServer server=new HttpSolrServer("http://localhost:8080/solr");  
  4.             //獲得solr.xml配置好的cores作爲默認,獲得默認core的路徑  
  5.             String path=(String) CoreAdminRequest.getStatus("core0",server).getCoreStatus().get("core0").get("instanceDir");  
  6.             //獲得solrhome,也就是solr放置索引的主目錄  
  7.             String solrHome=path.substring(0,path.indexOf("core0"));  
  8.             //建立新core所在文件夾  
  9.             File corePath=new File(solrHome+File.separator+coreName);  
  10.             if(!corePath.exists()){  
  11.                 corePath.mkdir();  
  12.             }  
  13.             //建立新core下的conf文件夾  
  14.             File confPath=new File(corePath.getAbsolutePath()+File.separator+"conf/");  
  15.             if(!confPath.exists()){  
  16.                 confPath.mkdir();  
  17.             }  
  18.             //將默認core下conf裏的solrconfig.xml和schema.xml拷貝到新core的conf下。這步是必須的因爲新建的core solr會去其conf文件夾下找這兩個文件,如果沒有就會報錯,新core則不會創建成功  
  19.             CoreContainer.fileCopy(new File(path+"conf/solrconfig.xml"), new File(confPath.getAbsolutePath()+File.separator+"solrconfig.xml"));  
  20.             CoreContainer.fileCopy(new File(path+"conf/schema.xml"), new File(confPath.getAbsolutePath()+File.separator+"schema.xml"));  
  21.             //創建新core,同時會把新core的信息添加到solr.xml裏  
  22.             CoreAdminRequest.createCore(coreName, coreName, server);  
  23.         } catch (IOException e) {  
  24.             e.printStackTrace();  
  25.         } catch (SolrServerException e) {  
  26.             // TODO Auto-generated catch block  
  27.             e.printStackTrace();  
  28.         }  

比較簡單,但是解決了我目前的問題,如果有人在研究,請多多指點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章