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