zl程序教程

您现在的位置是:首页 >  Java

当前栏目

【ES图文教程】4:给ES的扩展词词典及停用词词典

2023-02-18 16:31:07 时间

扩展词词典

随着互联网的发展,“造词运动”也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比如:“奥力给”,“蓝瘦香菇” 等。

所以我们的词汇也需要不断的更新,IK分词器提供了扩展词汇的功能。

比如:我们不能白嫖,要学习,不然蓝瘦香菇,要奥力给。我们知道这句话分词后,奥利给不能分开。

不是我们想要的。这个时候,我们就要添加扩展词词典了。添加步骤如下:

1)打开IK分词器config目录:

我们先来看看

2)在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>
</properties>

修改后:

3)新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改

注意:ext.dic也在当前目录下

vim ext.dic

4:重启ES

docker restart es

# 查看 日志
docker logs -f es

5:测试

需要注意,ES重启需要时间的。

如果出现503,如下图:

说明还在启动中。在等会。

我们可以看到,白嫖、蓝瘦香菇、奥力给这三个已经成功分词了

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑

4 停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。

IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

1)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">stopword.dic</entry>
</properties>

3)在 stopword.dic 添加停用词

习大大

4)重启elasticsearch

# 重启服务

docker restart elasticsearch

docker restart kibana

# 查看 日志

docker logs -f elasticsearch

日志中已经成功加载stopword.dic配置文件

5)测试效果:

注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑