ELK日誌分析平臺——es-ik中文分詞器

目錄

1、環境配置(安裝maven編譯ik)

2、下載IK中文分詞插件

3、測試是否生效

4、熱更新ik詞庫


背景:
如果直接使用Elasticsearch默認分詞器處理中文內容的搜索時,肯定會遇到很尷尬的問題——中文詞語被分成了一個一個的漢字,當用Kibana作圖的時候,按照term來分組,結果每一個漢字都被分成了一組。因此引入es之中文的分詞器插件es-ik就能解決這個問題。

測試默認的分詞對中文的支持 
curl -H "Content-Type: application/json" -XGET 'http://master:9200/_analyze?pretty=true' -d '{"text":"我們是中國人"}' 
結果是  我、們、是、中、國、人  不符合常規要求。

1、環境配置(安裝maven編譯ik)

[root@elk app]# tar zxvf apache-maven-3.3.9-bin.tar.gz 
[root@elk app]# ln -s apache-maven-3.3.9/ maven
[root@elk app]# vi /etc/profile
export MAVEN_HOME=/app/maven
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$MAVEN_HOME/bin:$PATH
[root@elk app]# source /etc/profile
修改maven配置settings.xml
http://my.repository.com/repo/path替換爲阿里雲url
http://maven.aliyun.com/nexus/content/repositories/central

2、下載IK中文分詞插件

https://github.com/medcl/elasticsearch-analysis-ik
#比對配置文件與ik版本是否一致,請提前修改避免日後報錯重新編譯
[root@elk elasticsearch-analysis-ik-6.6.1]# vi pom.xml
<elasticsearch.version>6.6.1</elasticsearch.version>
#使用maven進行源碼編譯 
cd ik && mvn clean package  -DskipTests 
#將ik插件複製到es目錄
[root@elk plugins]# cp /app/elasticsearch-analysis-ik-6.6.1/target/releases/elasticsearch-analysis-ik-6.5.0.zip /app/elasticsearch-6.6.1/plugins/ik/
[root@elk ik]# unzip elasticsearch-analysis-ik-6.5.0.zip 
重啓es
[es@elk bin]$ ./elasticsearch

3、測試是否生效

[root@elk ik]# curl -H 'Content-Type:application/json' -XGET http://192.168.198.136:9200/_analyze?pretty  -d '{"analyzer": "ik_smart", "text": "我們是中國人"}' 
結果是  我們、是、中國人 

4、熱更新ik詞庫

如果ik插件默認沒有我們需要的分詞規則,如新出的流行詞彙,需要自行添加,熱更新可以添加後自動更新詞庫避免頻繁重啓es
#部署http服務,安裝tomcat
[root@elk app]# ll | grep tomcat
drwxr-xr-x 9 root root 4096 8月  15 23:59 apache-tomcat-7.0.67
#切換到 /app/apache-tomcat-7.0.67/webapps/ROOT
新建熱詞文件 vi hot.dic 然並卵
#確定可以正常訪問  
http://192.168.20.210:8080/hot.dic
#修改ES中ik插件的配置文件
vi /app/es/plugins/ik/config/IKAnalyzer.cfg.xml 
添加如下內容 
<entry key="remote_ext_dict">http://192.168.198.136:8080/hot.dic</entry> 
#重啓es
bin/elasticsearch 
#以後需要添加新詞語,直接添加到之前創建的/app/apache-tomcat-7.0.67/webapps/ROOT/hot.dic文件中
#此時,es會自動更新詞典,日誌如下:
[2019-08-16T00:55:23,553][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] try load config from /app/elasticsearch-6.6.1/config/analysis-ik/IKAnalyzer.cfg.xml
[2019-08-16T00:55:23,553][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] try load config from /app/elasticsearch-6.6.1/plugins/ik/config/IKAnalyzer.cfg.xml
[2019-08-16T00:55:23,695][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] [Dict Loading] http://192.168.198.136:8080/hot.dic
[2019-08-16T00:55:23,709][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] 然並卵
[2019-08-16T00:55:23,710][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] 阿姆斯特朗炮
[2019-08-16T00:55:23,710][INFO ][o.w.a.d.Monitor          ] [KZsaE_I] 重新加載詞典完畢...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章