近幾篇ElasticSearch系列:
1、阿里雲服務器Linux系統安裝配置ElasticSearch搜索引擎
2、Linux系統中ElasticSearch搜索引擎安裝配置Head插件
3、ElasticSearch搜索引擎安裝配置中文分詞器IK插件
4、ElasticSearch搜索引擎安裝配置拼音插件pinyin
5、ElasticSearch搜索引擎在JavaWeb項目中的應用
一、pinyin插件安裝
1、首先前往GitHub下載安裝包(注意版本與ElasticSearch對應,若無對應版本,解壓后修改pom.xml文件中的elasticsearch.version,建議查看修改一下版本號),上傳至/home/目錄,並解壓至當前目錄,如下圖所示:
1 vim /home/elasticsearch-analysis-pinyin-6.3.2/pom.xml
2、然后切換至解壓目錄進行編譯(若無安裝Maven工具,首先安裝Maven才能編譯,具體參考Linux安裝Maven):
1 [root@izwz9eu3mkqq1njlkrfhc8z elasticsearch-analysis-pinyin-6.3.2]# mvn clean install -Dmaven.test.skip
編譯之后,會在當前目錄下的target/releases找到對應的zip包,如下圖所示:
3、然后在/usr/java/elasticsearch/elasticsearch-6.3.2/plugins/目錄下創建analysis-pinyin,再將上述中的zip包解壓至該目錄,如下圖所示:
1 [root@izwz9eu3mkqq1njlkrfhc8z elasticsearch-analysis-pinyin-6.3.2]# unzip /home/elasticsearch-analysis-pinyin-6.3.2/target/releases/elasticsearch-analysis-pinyin-6.3.2.zip -d /usr/java/elasticsearch/elasticsearch-6.3.2/plugins/analysis-pinyin/
4、切換至非root用戶,重新啟動ES即可,並且可在Head插件中查看插件信息,如下圖所示:
二、pinyin插件配置
1、創建空索引,再關閉才能設置分詞器,步驟如下圖所示:
a、通過head插件新建索引,名稱為medcl:
b、配置之前首先需要關閉剛剛創建的索引:
c、復合查詢中,輸入如下內容,選擇PUT方法提交請求。返回結果為右側的內容:
1 { 2 "index": { 3 "analysis": { 4 "analyzer": { 5 "pinyin_analyzer": { 6 "tokenizer": "my_pinyin" 7 } 8 }, 9 "tokenizer": { 10 "my_pinyin": { 11 "lowercase": "true", 12 "keep_original": "true", 13 "remove_duplicated_term": "true", 14 "keep_separate_first_letter": "false", 15 "type": "pinyin", 16 "limit_first_letter_length": "16", 17 "keep_full_pinyin": "true" 18 } 19 } 20 } 21 } 22 }
2、創建Mapping,即索引結構以及字段配置,如下圖所示:
1 { 2 "folks": { 3 "properties": { 4 "name": { 5 "type": "keyword", 6 "fields": { 7 "pinyin": { 8 "analyzer": "pinyin_analyzer", 9 "term_vector": "with_offsets", 10 "boost": 10, 11 "type": "text" 12 } 13 } 14 } 15 } 16 } 17 }
3、最后如同關閉索引操作一樣,開啟索引即可,並可在索引信息中查看,如下圖所示:
三、pinyin插件測試
這里推薦使用Postman軟件,是一個很好的http模擬器,在測試REST服務時是很好用的工具,可以發送get、post、put等各種請求,如下圖所示向剛才創建的索引中插入文檔:
這時返回head可看到,已經插入成功:
最后,在項目中輸入拼音測試一下。當僅僅輸入cesh,就已經能聯想到結果,后面數字是匹配度,后續會介紹,如下圖所示:
至此是關於介紹在Linux系統中ElasticSearch搜索引擎安裝配置拼音插件pinyin,后續會介紹在JavaWeb項目中怎么應用。
如有疏漏錯誤之處,還請不吝賜教!