一、Solr簡介
Apache Solr是一個功能強大的搜索服務器,它支持REST風格API。Solr是基於Lucene的,Lucene 支持強大的匹配能力,如短語,通配符,連接,分組和更多不同的數據類型。它使用 Apache Zookeeper特別針對高流量進行優化。
二、工具
Postman:發送post請求的http客戶端,官網地址:https://www.getpostman.com/
IKAnalyzer:中文分詞器,jar包下載地址:https://search.maven.org/search?q=com.github.magese
三、Solr的下載與安裝
1.Solr官網下載:http://lucene.apache.org/solr/downloads.html 或者 http://apache.fayea.com/lucene/solr/
2.下載後解壓,結構如下:
3.執行solr,指定端口爲8888。命令如下:
4.訪問http://localhost:8888/solr/,進入Admin UI界面驗證是否成功。如圖:
5.Solr常用命令
./solr start –p 端口號 // 單機版啓動solr服務
./solr restart –p 端口號 // 重啓solr服務
./solr stop –p 端口號 // 關閉solr服務
./solr stop -all // 關閉所有solr服務
./solr status // 查看solr狀態
./solr create –c name // 創建一個core實例(core概念後面介紹)
注:
此外有關於solr集羣版啓動方式和其他更多的命令可以參看官方文檔https://lucene.apache.org/solr/guide/
6.Admin UI界面,創建core。出現
解決:
1)在創建new_core文件夾,如圖:
2)將configsets下的conf文件夾,拷貝到new_core文件夾中,如圖:
3)再在Admin UI界面創建c7ore,成功。如圖:
四、配置schema
1.找到managed-schema配置文件,如圖:
2.添加配置text_ik,如下配置:
<!-- ik-analyzer -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
3. 解析schema主要成員:
1) fieldType:爲field定義類型,最主要作用是定義分詞器,分詞器決定着如何從文檔中檢索關鍵字。
2)analyzer:fieldType下的子元素,這就是傳說中的分詞器,他由一組tokenizer和filter組成
3)field:創建索引用的字段,若想要這個字段生成索引需要配置他的indexed屬性爲true,stored屬性爲true表示存儲該索引。
4.根據API,用postman測試,API地址:https://lucene.apache.org/solr/guide/8_1/schema-api.html#modify-the-schema
五、中文分詞器
1.將jar包放入WEB-INF的lib中,如圖:
2.在WEB-INF下創建classes,並將文件放入。如圖:
3.選擇分詞
4.測試分詞,打開ADMIN UI界面,操作如圖:
五、SolrJ(Java客戶端)
1.添加maven依賴
<!-- solr -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>8.1.1</version>
</dependency>
2.在項目中使用,請參考SolrJ官方文檔