拼音分詞在日常生活中其實很常見,也許你每天都在用。打開淘寶看一看吧,輸入拼音”zhonghua”,下面會有包含”zhonghua”對應的中文”中華”的商品的提示:
elasticsearch-analysis-pinyin 是 ElasticSearch的拼音插件,強大的功能支援拼音等的搜尋。
拼音分詞是根據輸入的拼音提示對應的中文,通過拼音分詞提升搜尋體驗、加快搜尋速度。下面介紹如何在Elasticsearch 6.2.2中配置elasticsearch-analysis-pinyin
1、下載下傳源代碼
源碼位址https://github.com/medcl/elasticsearch-analysis-pinyin
這裡我是直接使用Download ZIP方式下載下傳了源碼,裡面的readme 說的使用方法很詳細全面,完全可以參考裡面的文檔進行練習。
2、解壓到指定目錄
下載下傳的源碼zip檔案解壓縮
3、修改源碼的pom.xml檔案
<elasticsearch.version>6.2.2</elasticsearch.version> 修改es版本為您需要的版本号
這有個小插曲:我用的elasticsearch為6.2.2,看了源碼下的readme版本對照資訊後,發現沒有對應的6.2.2的版本資訊。是以我分别編譯了6.2.4和6.2.2版本的elasticsearch-analysis-pinyin插件。實測都是可以在6.2.2的elasticsearch中使用。但是如果編譯的是6.2.4版本的pinyin插件時,需要把plugin-descriptor.properties配置檔案中elasticsearch.version修改為6.2.2,否則es無法正常啟動!!!
如下圖:
另附readme.md檔案中的版本對照圖如下:
4、mvn打包,執行mvn install
會在源碼目錄下生成target檔案夾,在如下目錄中找到elasticsearch-analysis-pinyin-6.2.2.zip
elasticsearch-analysis-pinyin-master\target\releases\elasticsearch-analysis-pinyin-6.2.2.zip
5、将elasticsearch-analysis-pinyin-6.2.2.zip解壓縮後的内容複制到elasticsearch的plugins目錄的pinyin目錄下
如果沒有pinyin目錄自己建立,如下圖:
6、重新開機es,
./bin/elasticsearch.bat
7、驗證
在kibana中輸入
GET _analyze
{
"analyzer": "pinyin",
"text": "劉德華"
}
顯示如下json資料則為安裝成功
{
"tokens": [
{
"token": "liu",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 0
},
{
"token": "de",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 1
},
{
"token": "hua",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 2
},
{
"token": "ldh",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 2
}
]
}