一天一小步,夢想一大步
Solr是一個獨立的企業級搜尋應用伺服器,它對外提供類似於Web-service的API介面。使用者可以通過http請求,向搜尋引擎伺服器提交一定格式的XML檔案,生成索引;也可以通過Http Get操作提出查詢請求,並得到XML格式的返回結果。
Solr是一個高效能,採用Java5開發,基於Lucene的全文搜尋伺服器。同時對其進行了擴充套件,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件並對查詢效能進行了優化,並且提供了一個完善的功能管理介面,是一款非常優秀的全文搜尋引擎。
一、環境搭建
1.環境準備:
apache-tomcat-8.5.34
solr-4.10.3.tgz.tgz
IK Analyzer 2012FF_hf1(分詞器)
2.解壓tomcat並建立solr資料夾
[[email protected] ~]# tar -zxf apache-tomcat-8.5.34.tar.gz
[[email protected] ~]# mkdir /usr/local/solr
3.將tomcat解壓後的資料夾拷貝到solr的tomcat資料夾中
[[email protected] ~]# cp apache-tomcat-8.5.34 /usr/local/solr/tomcat -r
4.把solr的壓縮包上傳到伺服器後並解壓,然後把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。並改名為solr.war
[[email protected] ~]# tar -zxf solr-4.10.3.tgz.tgz
[[email protected] ~]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
5.解壓war包。啟動tomcat自動解壓。然後關閉tomcat,刪除war包
6.把/root/solr-4.10.3/example/lib/ext 目錄下所有的jar包複製到solr工程中
[[email protected] ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
7.建立solrhome資料夾,該資料夾用來存放solr伺服器所有配置檔案。將/root/solr-4.10.3/example中的solr資料夾拷貝至solrhome
[[email protected] example]# cp -r solr /usr/local/solr/solrhome
8.在solr工程中的web.xml檔案中指定solrhome的位置
二、配置
-----中文分析器配置
1.把IK-Analyzer分析器的資料夾上傳到伺服器
2.把分析器的jar包新增到solr工程中
[[email protected] IKAnalyzer2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
3.把IKAnalyzer需要的擴充套件詞典及停用詞詞典、配置檔案複製到solr工程的WEB-INF/classes資料夾中(沒有該目錄則不用管)
[[email protected] IKAnalyzer2012FF_hf1]#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
-----業務欄位配置
1.在solrhome/collection1/conf/schema.xml中配置,根據業務需要選擇相應的欄位對應solr的欄位
<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="user_name" type="string" indexed="true" stored="true"/>
<field name="age" type="long" indexed="true" stored="true"/>
<field name="phone" type="string" indexed="true" stored="true"/>
<field name="job" type="string" indexed="false" stored="true" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="user_name" dest="item_keywords"/>
<copyField source="phone" dest="item_keywords"/>
<copyField source="job" dest="item_keywords"/>
2.重啟tomcat