2010-04-26 104 views
13

我已經花了整整一天的時間嘗試在運行於Apache Tomcat服務器下的SOLR安裝上設置多個內核而未成功。我的solr.xml如下所示:Tomcat SOLR多核心設置

<solr persistent="false" sharedLib="lib"> 
    <cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="/multicore/core0"> 
     <property name="dataDir" value="/multicore/core0/data" /> 
    </core> 
    <core name="core1" instanceDir="/multicore/core1"> 
     <property name="dataDir" value="/multicore/core1/data" /> 
    </core> 
    </cores> 
</solr> 

什麼是正確的目錄結構?我是否需要在solrconfig.xml中更改某些內容?

+0

什麼版本的Tomcat和Apache與它有關?我有類似的問題,但我找不到這些文件或配置設置。我在Tomcat6,Solr 3.6,Ubuntu上。 – 2012-05-29 15:20:32

回答

10

檢查您的instanceDir值是否與-Dsolr.solr.home相關。如果-Dsolr.solr.home是'multicore',那麼你的instanceDir應該只是「core0」。

如果你把你的數據文件夾裏面INSTANCEDIR,你不應該有指定的路徑:

<?xml version='1.0' encoding='UTF-8'?> 
<solr persistent="true"> 
<cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="core0" /> 
    <core name="core1" instanceDir="core1" /> 
</cores> 
</solr> 

你不應該設置在什麼solrconfig.xml中。但是,如果您需要獨立配置一個獨立於核心位置的處理程序,則可以使用變量$ {solr.core.instanceDir}。

UPDATE

要設置在Tomcat中solr.solr.home變量,請使用JAVA_OPTS環境變量啓動Tomcat之前:

JAVA_OPTS="-Dsolr.solr.home=multicore" 
export JAVA_OPTS 
tomcat/bin/catalina.sh start 

確保 「多核」 是相對正確設置爲工作目錄。例如,如果solr.solr.home ='multicore',則必須從「多核」所在的目錄啓動Tomcat。

+0

感謝您的快速回復Pascal。我如何檢查我的solr.solr.home是什麼?我在Tomcat上運行solr,而不是Jetty,所以在運行start.jar時不能在命令行上設置它。 我嘗試了上面的solr.xml,但試圖訪問http:// devel:12345/solr/core0/admin/ 類型狀態報告 message/solr/core0/admin/ 描述請求資源(/ solr/core0/admin /)不可用。 任何想法可能是什麼? – Sfairas 2010-04-26 15:00:37

+0

使用Tomcat,您可以使用環境變量JAVA_OPTS來設置-Dsolr.solr。在打電話給卡塔利娜劇本之前。 – 2010-04-26 15:17:51

+0

好的,我設置了JAVA_OPTS =' - Dsolr.solr.home = multicore',但仍然無法使其工作。我知道這是一個配置問題,但我無法弄清楚我在這裏錯過了什麼。 – Sfairas 2010-04-27 12:16:23

6

這是在遊戲中有些晚了,但我只是提出了一個博客帖子有instructions for a multicore SOLR instance on Tomcat曰:

  1. 下載並安裝了32位/ 64位的Windows服務 安裝程序爲Tomcat
  2. 設置Tomcat服務器上(沒有 特殊說明這裏 - 只需運行安裝和安裝的地方 你願意)通過http
  3. 驗證的Tomcat的安裝://本地主機:8080
  4. 編輯Tomcat的 CONF/server.xml中,並添加的URIEncoding = 「UTF-8」到 <連接器>元件從這裏找到 反射鏡之一這裏
  5. 下載 SOLR所示(下載了Apache的solr的-1.4.1 .ZIP 包)並解壓包
  6. 創造一個SOLR 將(在我的情況下,我用的電子主辦的目錄:\的Inetpub \ SOLR)是
  7. 複製 的例如\ Solr的目錄中的內容,您 SOLR主機目錄(在我的情況下是e:\ inetpub \ solr)
  8. Cr eate 您的SOLR主機目錄下的目錄爲您想要創建的每個核心(我爲每個核心創建了十二個左右的文件夾,我想要在e:\ inetpub \ solr目錄中創建 。  目錄 包括en-US,en-CA,en-GB等)
  9. 複製 solr。從 例如\多核目錄XML文件,並貼到您的 SOLR主機目錄(E:\的Inetpub \ Solr的我的例子)
  10. 編輯 的solr.xml文件,包括每個 信息你創建(如果你的主機下創建的文件夾 名爲核心的en-US,然後添加 <內核在下列核心的>元素在solr.xml文件: <合作再NAME = 「EN-US」 INSTANCEDIR = 「EN-US」/ >
  11. 停止Tomcat服務
  12. 複製* Solr的*從 的  DIST目錄解壓後SOLR包 .war文件到Tomcat的webapps
  13. 重命名 * Solr的* .war文件到solr.war
  14. 在Windows任務欄的右側通知區域,在 的Apache Tomcat 7右鍵單擊圖標和選擇 配置
  15. 點擊的Java 選項卡,並添加以下到Java選項文本框 :-Dsolr.solr.home = E:\的Inetpub \ Solr的(其他城市 E:\的Inetpub \ Solr的到哪裏你SOLR被託管)
  16. 單擊對話框中 OK,然後啓動Tomcat的 服務
  17. 打開的conf \ solrconfig.xml中文件 下每個您創建的核心,並更改 dataDir元素以指向特定的 目錄。  如果此步驟未完成,您的所有內核將爲其數據使用相同的數據存儲。
  18. 停止並 重新啓動Tomcat服務
  19. 測試你的核心是通過從Web瀏覽器的HTTP運行查詢運行 ://本地主機:8080/Solr的/ EN-US /選擇Q = *:*   (替換 「en-US」與任何你命名的內核之一)