ik与拼音分词器,拓展热词/停止词库
說明:本篇文章講述elasticsearch分詞器插件的安裝,熱詞庫停止詞庫的拓展,文章后面提到elasticsearch ,都是以es簡稱。
? ? ? ? ? 以下分詞器的安裝以ik分詞器和pinyin分詞器為例說明,使用的操作系統是Linux,使用的分詞器器版本是6.5.4版本,對應的es版本也是6.5.4(寫這篇文章時對應最新es是7.2版本),這里需要強調的是分詞器插件和es版本一定要一致,否則容易導致問題,比如,
? ? ? ? ? 我的pinyin分詞器最早使用的是6.5.2,覺得與es版本相差不遠,應該能支持,實際安裝后,因為pinyin分詞器版本問題導致es啟動失敗。
1、ik分詞器的安裝(Linux)
? ?? 下載6.5.4版本的ik分詞器,下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
? ?? 安裝:
? ? ? ? ? ? 1.1 、將分詞器拉取到es安裝所在服務器的es安裝主目錄的{ES_HOME}/plugins 目錄下
? ? ? ? ? ? 1.2、解壓ik分詞器 unzip?elasticsearch-analysis-ik-6.5.4.zip -d?ik
? ? ? ? ? ? 1.3、重啟es服務器
? ? ? ? ? ? 1.4、執行命令 cd?{ES_HOME}/logs 切換到日志目錄,tail -1000f?elasticsearch.log 看下是否日志報錯,沒有報錯說明啟動正常,安裝插件成功。
2、ik分詞器擴展
? ? ?? 2.1、切換到剛剛安裝的ik分詞器插件配置目錄目錄? cd?{ES_HOME}/plugins/ik/config
? ? ?? 2.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.3、以上看到的.dic結尾的 文件,是ik的一些默認詞庫,實際上你可以打開修改默認詞庫,但是需要重建索引,并且重新導入數據才會生效。
? ? ? 2.4、這里比較重要的文件是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,使得配置生效。
? ?? 重啟后, 在新增熱詞字段,不需要重啟,但時有個問題,就是對于已經同步入庫的(即歷史同步的數據),新增加的熱詞無法生效。
3、拼音分詞器安裝
? ?? 下載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.2、解壓ik分詞器 unzip?elasticsearch-analysis-pinyin-6.5.4.zip -d?pinyin
? ?? 1.3、重啟es服務器
? ?? 1.4、執行命令 cd?{ES_HOME}/logs 切換到日志目錄,tail -1000f?elasticsearch.log 看下是否日志報錯,沒有報錯說明啟動正常,安裝插件成功。
結語:分詞器雖好,但是了解一些分詞器特定是必要,比如,ik分詞器將"普通高中"分隔為一個詞,這樣如果搜索內容中包含這個,搜索"高中"這個詞是搜索不到的,但是如果,內容里面包含”普通的高中“,那么搜索”高中“就可以搜索到這條內容。
? ? ? ? ? 另外,分詞器拓展熱詞庫在web服務里面維護終究需要人肉去做的,如果能夠在搜索過程中自動提取熱詞并且拓展ik不存在的,而又需要的熱詞就完美了
?
? 相關文章:使用logstash同步mysql數據到elasticsearch
技術合作:
? ? ? ? ? ? qq:281414283
? ? ? ? ? ? 微信:so-so-life
? ? ?
?
? ? ?
? ? ? ??
?
轉載于:https://www.cnblogs.com/javato/p/11150653.html
總結
以上是生活随笔為你收集整理的ik与拼音分词器,拓展热词/停止词库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JDBC笔记(1)
- 下一篇: oracle中创建事件的作用,Oracl