2011-06-02 156 views
5

我無法運行EmbeddedSolrServer。至少說,CoreContainer的JavaDoc是稀少的。我已經看過「MergeIndexesEmbeddedTest」,我的代碼看起來應該可以工作。 (這是一個Maven項目)我在src/main/resources文件夾的根目錄中同時具有「Schema.xml」和「solr.xml」。我能夠實例療法服務器,但是當我嘗試將SolrInputDocument添加到服務器,我得到:如何設置EmbeddedSolrServer實例?

org.apache.solr.common.SolrException: 'No such core: butterfly' 
at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:104) 
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105) 
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:64) 

我的代碼,設置了服務器:

final File solrConfigXml = new File("C:/code/butterfly/src/main/resources/solr.xml"); 
final String solrHome = "C:/code/butterfly/src/main/resources/"; 
CoreContainer coreContainer; 
try{ 
    coreContainer = new CoreContainer(solrHome, solrConfigXml); 
}catch(Exception e){ 
    e.printStackTrace(System.err); 
    throw new RuntimeException(e); 
} 
solrServer = new EmbeddedSolrServer(coreContainer, "butterfly"); 

和我solr.xml文件是:

<?xml version="1.0" encoding="UTF-8" ?> 
<solr persistent="false"> 
    <cores adminPath="/admin/cores" defaultCoreName="butterfly1"> 
      <core name="butterfly" instanceDir="." /> 
    </cores> 
</solr> 

我沒有張貼了我Schema.xml文件,因爲它僅僅是一個修剪的例子一個不同的字段名稱的版本。我正在使用絕對文件路徑,因爲它似乎更容易上手。

+0

核心文件夾是否存在?日誌中顯示的日誌之前是否有任何消息? – 2011-09-15 11:52:07

回答

1

在您的solr.xml片段中,defaultCoreName是butterfly1。在模式中沒有名稱= butterfly1的核心。

您使用的是什麼版本的solr服務器?