apache solr 標準安裝

Solr是一個基於Lucene java庫的企業級搜索服務器,本文記錄了solr的安裝過程,版本爲最新的1.4.1。

1) 下載

    從solr的官網http://lucene.apache.org/solr/找到最新的版本1.4.1.

    解開下載的apache-solr-1.4.1.zip或apache-solr-1.4.1.tgz文件到apache-solr-1.4.1目錄.


2) 簡易安裝

    solr的發佈包中包含一些example,爲了方便的運行這些example,solr的發佈包中還額外的附帶了jetty以便我們可以快速的搭建一個可運行的solr實例。

    因爲一切都是現成的,因此過程就很簡單了, 參考solr的教程(http://lucene.apache.org/solr/tutorial.html), 步驟如下:

1. cd apache-solr-1.4.1/example
2. java -jar start.jar
3. 打開瀏覽器訪問 access http://localhost:8983/solr/admin/ 

     如果可以看到solr的搜索頁面,說明solr正常運行。足夠簡單吧。

3) 標準安裝

    上面的簡易安裝方式終究不能運用於正式場合,因此還是需要標準安裝方式。

    solr的安裝其實需要做的事情不多,因爲本身就只需要運行起來是一個打包好的war包,只要配置OK就可以運行於各個web container。

    通用的solr安裝步驟如下:

1. 準備好web container 如tomcat, jetty, resin等
注意安裝前先停止web container服務器。

2. 從上面解壓好的solr發佈包中找到example\solr目錄
這個目錄可以用來作爲配置solr的模板使用
將example\solr目錄複製到其他路徑,如C:\soft\solr,以後這個目錄就將作爲solr home使用

注意有個文件需要修改一下,$SOLR_HOME/conf/solrconfig.xml,找到dataDir設置:

默認爲<dataDir>${solr.data.dir:./solr}</dataDir>,用的是相對路徑,這個需要修改爲完整路徑:

<dataDir>${solr.data.dir:C:\soft\solr\data}</dataDir>

3. 從上面解壓好的solr發佈包中找到solr的war包
apache-solr-1.4.1/dist/apache-solr-1.4.1.war
可以將這個war複製到solr home目錄下

4. 啓動web container
啓動時有兩個東西需要做到:

1. 要運行的solr的webapp
可以通過直接複製solr的war包到webapp目錄,也可以通過其他方式指定這個war的路徑
總之是讓web container啓動solr這個應用。

2. 要指明solr home
方式有3種:
1. 設置java 的系統參數solr.solr.home(應該是solr.home,但是官網就是寫成solr.solr.home)
如 -Dsolr.solr.home=C:\soft\solr
2. 設置JNDI lookup "java:comp/env/solr/home"
3. 默認爲./solr目錄,即當前工作路徑下的solr
由於工作路徑容易造成問題,因此一般不推薦這種方式。


5. 訪問solr的管理頁面來驗證安裝是否完成

    上述步驟中其他步驟都簡單,只有步驟4需要額外注意。雖然原則上都是這些內容,但是具體到不同的web container會有不同的方法。
 
    下面以tomcat和jetty爲例,假定步驟1,2,3都已經完成。

4) 安裝於tomcat

    以下內容參考官網文檔 http://wiki.apache.org/solr/SolrTomcat.  

    1. 修改tomcat的server.xml文件

主要是修改監聽端口,另外需要設置URIEncoding爲UTF-8。

    <Connector port="8983" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />

    2. 增加tomcat\conf\Catalina\localhost\solr.xml文件

內容爲:

<?xml version="1.0" encoding="utf-8"?>
<Context docBase="C:\soft\solr\apache-solr-1.4.1.war" debug="0" crossContext="true">
  <Environment name="solr/home" type="java.lang.String" value="C:\soft\solr" override="true"/>
</Context>

    步驟4就完成了,使用的tomcat版本爲6.28。


5) 安裝於jetty

    以下內容參考官網文檔 http://wiki.apache.org/solr/SolrJetty, 但是坦白說,這個文檔的內容有點凌亂。

    jetty安裝完成後,只需一個步驟,增加文件jetty\contexts\solr.xml,內容如下:


<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  <Set name="contextPath">/solr</Set>
  <Set name="war">C:\soft\solr\apache-solr-1.4.1.war</Set>

  <Set name="extractWAR">true</Set>
  <Set name="copyWebDir">false</Set>
  <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>

  <Array id="plusConfig" type="java.lang.String">
    <Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
    <Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
    <Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
    <Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
  </Array>

  <Set name="ConfigurationClasses"><Ref id="plusConfig"/></Set>

  <New class="org.mortbay.jetty.plus.naming.EnvEntry">
    <Arg>/solr/home</Arg>
    <Arg type="java.lang.String">C:\soft\solr</Arg>
    <Arg type="java.lang.Boolean">true</Arg>
  </New>

</Configure>

    主要是指定contextPath/war, 另外設置"/solr/home",注意jetty下是"/solr/home",不是"solr/home"。這裏有點奇怪。

    時間有限,其他webcontainer就不一一測試了,相信原理都是一樣的。

    補充:以上爲windows上的安裝過程,linux系統應該也是相同的。我在SUSE 11上驗證通過,安裝成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章