1. 程式人生 > >一天一小步,夢想一大步

一天一小步,夢想一大步

  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