一、solr 的簡介
Apache Solr 是一個開源的搜索服務器。Solr 使用 Java 語言開發,主要基於 HTTP 和 Apache Lucene 實現。Apache Solr 中存儲的資源是以 Document 為對象進行存儲的。每個文檔由一系列的 Field 構成,每個 Field 表示資源的一個屬性。Solr 中的每個 Document 需要有能唯一標識其自身的屬性,默認情況下這個屬性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>進行描述。
Solr是一個高性能,采用Java5開發,基於Lucene的全文搜索服務器。文檔通過Http利用XML加到一個搜索集合中。查詢該集合也是通過 http收到一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的緩存功能,垂直搜索功能,高亮顯示搜索結果,通過索引復制來提高可用性,提 供一套強大Data Schema來定義字段,類型和設置文本分析,提供基於Web的管理界面等。
二、solr 3.5 的下載
solr 3.5下載地址:http://www.apache.org/dist//lucene/solr/
tomcat tomcat-7.0.26 下載:http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.26/bin/apache-tomcat-7.0.26.zip
三、solr 3.5的安裝
1、解壓tomcat-7.0.26 到 e:\tomcat-7.0.26\下
2、打開tomcat-7.0.26\conf 修改 server.xml 文件
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
修改默認端口8080,可以不修改,添加字符編碼 URIEncoding="UTF-8" 否則中文會亂碼
3、在apache-solr-3.5.0\dist目錄下找到apache-solr-3.5.0.war把重命名為solr.war 並上傳到 tomcat-7.0.26/webapps下。
4、創建一個solr.xml文件,
在tomcat-7.0.14\conf\Catalina\localhost\下創建一個solr.xml文件。內容為:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="e:/tomcat-7.0.26/webapps/solr" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="e:/tomcat-7.0.26/solr" override="true" />
</Context>
docBase:為solr的上傳目錄
5、把apache-solr-3.5.0\example目錄下的solr文件夾上傳到e:/tomcat-7.0.26目錄下.索引文件會默認會放到 e:/tomcat-7.0.26\solr\data下.
6、重新tomcat 在瀏覽器中輸入:http://localhost:8080/
會出現:welcome to solr
solr admin 說明發布已成功!
四、solr 3.5與IKAnalyzer 3.2.8分詞的整合
1、IKAnalyzer下載地址:IKAnalyzer 3.2.8
2、添加IKAnalyzer3.2.8.jar
把IKAnalyzer3.2.8.jar放到 tomcat-7.0.14\webapps\solr\WEB-INF\lib下;
3、schema.xml 增加信息
進入目錄編輯schema.xml文件,在<Types>下添加以下內容:
<fieldType name="text" class="solr.TextField" >
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
然后在<fields>下添加:
<field name="name1" type="text" indexed="true" stored="true" required="true" />
5、重新tomcat 在瀏覽器中輸入:http://localhost:80/solr/analysis.jsp 進去 solr admin 顯示: