說明:本篇文章講述elasticsearch分詞器插件的安裝,熱詞庫中止詞庫的拓展,文章後面提到elasticsearch ,都是以es簡稱。html
如下分詞器的安裝以ik分詞器和pinyin分詞器爲例說明,使用的操做系統是Linux,使用的分詞器器版本是6.5.4版本,對應的es版本也是6.5.4(寫這篇文章時對應最新es是7.2版本),這裏須要強調的是分詞器插件和es版本必定要一致,不然容易致使問題,好比,java
個人pinyin分詞器最先使用的是6.5.2,以爲與es版本相差不遠,應該能支持,實際安裝後,由於pinyin分詞器版本問題致使es啓動失敗。mysql
一、ik分詞器的安裝(Linux)git
下載6.5.4版本的ik分詞器,下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zipgithub
安裝:web
1.1 、將分詞器拉取到es安裝所在服務器的es安裝主目錄的{ES_HOME}/plugins 目錄下sql
1.二、解壓ik分詞器 unzip elasticsearch-analysis-ik-6.5.4.zip -d ik服務器
1.三、重啓es服務器微信
1.四、執行命令 cd {ES_HOME}/logs 切換到日誌目錄,tail -1000f elasticsearch.log 看下是否日誌報錯,沒有報錯說明啓動正常,安裝插件成功。elasticsearch
二、ik分詞器擴展
2.一、切換到剛剛安裝的ik分詞器插件配置目錄目錄 cd {ES_HOME}/plugins/ik/config
2.二、執行ls 命令能夠看到,如下文件列表:extra_main.dic extra_single_word.dic extra_single_word_full.dic extra_single_word_low_freq.dic extra_stopword.dic IKAnalyzer.cfg.xml main.dic preposition.dic quantifier.dic stopword.dic suffix.dic surname.dic
2.三、以上看到的.dic結尾的 文件,是ik的一些默認詞庫,實際上你能夠打開修改默認詞庫,可是須要重建索引,而且從新導入數據纔會生效。
2.四、這裏比較重要的文件是IKAnalyzer.cfg.xml,執行 vi IKAnalyzer.cfg.xml 打開文件,能夠看到以下內容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 擴展配置</comment>
<!--用戶能夠在這裏配置本身的擴展字典 -->
<entry key="ext_dict"></entry>
<!--用戶能夠在這裏配置本身的擴展中止詞字典-->
<entry key="ext_stopwords"></entry>
<!--用戶能夠在這裏配置遠程擴展字典 -->
<entry key="remote_ext_dict">http://deploy_ip:port/myweb/myHotDic.txt</entry>
<!--用戶能夠在這裏配置遠程擴展中止詞字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
這裏能夠添加本身拓展字典,也能夠遠程擴展,這裏結合業務邏輯拓展遠程字典,這樣就能夠經過地址直接訪問這些字典,遠程拓展字典能夠經過web服務來維護,配置好後,重啓es,使得配置生效。
重啓後, 在新增熱詞字段,不須要重啓,但時有個問題,就是對於已經同步入庫的(即歷史同步的數據),新增長的熱詞沒法生效。
三、拼音分詞器安裝
下載6.5.4版本的pinyini分詞器,下載地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.5.4/elasticsearch-analysis-pinyin-6.5.4.zip
1.1 、將分詞器拉取到es安裝所在服務器的es安裝主目錄的{ES_HOME}/plugins 目錄下
1.二、解壓ik分詞器 unzip elasticsearch-analysis-pinyin-6.5.4.zip -d pinyin
1.三、重啓es服務器
1.四、執行命令 cd {ES_HOME}/logs 切換到日誌目錄,tail -1000f elasticsearch.log 看下是否日誌報錯,沒有報錯說明啓動正常,安裝插件成功。
結語:分詞器雖好,可是瞭解一些分詞器特定是必要,好比,ik分詞器將"普通高中"分隔爲一個詞,這樣若是搜索內容中包含這個,搜索"高中"這個詞是搜索不到的,可是若是,內容裏面包含」普通的高中「,那麼搜索」高中「就能夠搜索到這條內容。
另外,分詞器拓展熱詞庫在web服務裏面維護終究須要人肉去作的,若是可以在搜索過程當中自動提取熱詞而且拓展ik不存在的,而又須要的熱詞就完美了
相關文章:使用logstash同步mysql數據到elasticsearch、elasticsearch相關性打分背後的理論
技術合做:
qq:281414283
微信:so-so-life