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上驗證通過,安裝成功。