作爲java開發主流的幾款用以做分詞,搜索的插件,solr 相比lucene,具有更好的封裝性,功能更強大,使用時候更加高效便捷,本篇將演示如何在linux環境下搭建一個簡單的solr程序,安裝環境爲centos6.5
1.需要的安裝包:apache-tomcat-7.0.47.tar.gz、solr-4.10.3.tgz.tgz(jdk自行安裝)
2.創建solr文件夾
cd /usr/local
mkdir solr
3.上傳tomcat,solr壓縮文件,上傳完畢,分別解壓文件;
tar -zxf apache-tomcat-7.0.47.tar.gz
tar -zxf solr-4.10.3.tgz.tgz
4.爲方便管理,創建一個tomcat的文件夾,由於solr的運行是一個類似web的項目,需要依賴tomcat的啓動才能訪問,
cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r
5.把solr的壓縮包上傳到服務器後並解壓,然後把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。並改名爲solr.war
cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
6.解壓war包。啓動tomcat自動解壓。然後關閉tomcat,刪除war包
7.把/root/solr-4.10.3/example/lib/ext 目錄下所有的jar包複製到solr工程中,啓動需要依賴這些包
cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
8.創建solrhome文件夾,該文件夾用來存放solr服務器所有配置文件;
將/root/solr-4.10.3/example中的solr文件夾拷貝至solrhome
cp -r solr /usr/local/solr/solrhome
注意,這個solrhome文件夾非常重要,裏面保存着今後創建各類分詞文件的原始配置文件
9.在solr工程中的web.xml文件中指定solrhome的位置
在tomcat中進入到此處,修改web.xml文件,主要是將文件的存放位置紙箱solrhome的位置,solrhome的位置可以自己定義;
vi web.xml
10.啓動tomcat
cd /bin
./startup.sh
啓動成功,瀏覽器輸入:http://192.168.111.130:8080/solr,IP換成你自己的就行了,看到如下界面,說明啓動成功;
簡單說明一下管控臺上的幾個主要組件,CoreAdmin,這個相當於是一個管理你創建的分詞文檔的文檔庫,默認安裝完畢後,會有一個collection1,你可以進入到這個文件夾下配置你的業務字段;
11、配置中文分詞器;
1).把IK-Analyzer分析器的文件夾上傳到服務器
2).把分析器的jar包添加到solr工程中
cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
分詞器文件在analise中
3).把IKAnalyzer需要的擴展詞典及停用詞詞典、配置文件複製到solr工程的WEB-INF/classes文件夾中
cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
4).在solrhome/collection1/conf/schema.xml中配置filedType
進入該目錄:
cd /usr/local/solr/solrhome/collection1/conf
vi schema.xml
找到添加業務字段的位置,添加你需要的字段,這個裏面配置好了以後,在你的程序代碼中就可以對應上了,如圖:
具體的字段意義可自行百度,都有詳細的講述;
5)重啓tomcat,配置的字段就會生效了;
在左邊的導航欄裏,選擇collection1,再選擇下面的Analysis,右邊的FieldType列表裏就會顯示出你在schema.xml中配置的字段信息;
solr的搭建到此基本就結束了,至於裏面的細節和優化的配置,大家可以在此基礎上繼續深入探討,比如在管控臺上有很多運維的操作,都可以執行百度裏面的含義,幫助深化理解solr的功能;
下面說一個在運用中大家可能會遇到的問題
實際開發中,我們並不想使用安裝後默認的Core Admin,想自己新建一個文檔的倉庫進行分詞和文檔的管理操作,此時需要新建一個Core Admin,並且實際業務中也是存在這樣的需求的,例如項目中存在多種類型的文檔搜索,都放在collection1下,那麼schema.xml將會越來越龐大,以至於維護起來很不方便,好的做法是,在solrhome下添加一個新的core,這個core可以自定義,只要放在該文件夾下即可,命名隨意,例如,在solrhome下自己放入了一個core0,
在conf文件夾下找到schma.xml文件,在這個配置文佳下進行業務字段的添加配置,然後在管控臺上創建一個新的Core Admin的時候就可以使用這個core0:
這時候可以看到剛剛創建的core0就出現在了Core Selector中了,這個地方容易出的問題就是如果第一次嘗試創建一個新的Core Admin的時候,不慎選用了collection1,或者界面自帶的其他core,會一直報錯顯示創建失敗,此處切記!