🏷️个人主页:牵着猫散步的鼠鼠
🏷️系列专栏:云原生与服务部署-专栏
🏷️个人学习笔记,若有缺误,欢迎评论区指正
目录
编辑
1. 前言
2. IK分词器安装
3. IK分词器词典扩展与停用
4. 总结
1. 前言
我们在前面文章中完成了ElasticSearch服务的部署,但是ES默认的分词器对中文词语分词效果很不好,每个中文都分成了一个词,所以我们需要安装一个支持中文分词的分词器,我们这里选用IK分词器
2. IK分词器安装
我们这里采用在线安装,操作比较简单
进入到ES容器
docker exec -it es /bin/bash
在线下载并安装IK分词器,这里最后面的版本号需要与你的ES版本对其,否则无法正常安装
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.17.21
退出容器,重启ES容器
#退出
exit
#重启容器
docker restart elasticsearch
在Kibana Dev tool中测试IK分词器:
IK分词器包含两种模式:ik_smart最小切分,和ik_max最细切分,ik_max模式会将词语切分得更细
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "IK分词器测试"
}
GET /_analyze
{
"analyzer": "ik_smart",
"text": "IK分词器测试"
}
3. IK分词器词典扩展与停用
随着网络的发展,各种网络梗层出不穷,出现了很多新的词语,在原有的词汇列表中并不存在。比如:“白嫖”,“开摆”,“乐子人” 等。
IK分词器提供了扩展词汇和停用词汇的功能,我们接下来接着扩展IK分词器
编辑IK分词器配置文件/local/es-config/config/analysis-ik/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">ext.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stop.dic</entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
同目录下新建ext.dic,添加需要扩展的词汇
同目录新建stop.dic文件,添加需要停用的词汇,比如语气词
重启ES容器
docker restart es
测试分词,可以看到”牵着猫散步的鼠鼠“被成功分词
4. 总结
ES默认的分词器对中文词语分词效果很不好,每个中文都分成了一个词,所以我们需要安装一个支持中文分词的分词器,使用较多的就是IK分词器。此外我们可以通过修改配置来实现对分词器词典的扩展和停用。