Elasticsearch - ik分词器
一、前言
之所以要在elasticsearch中要使用ik这样的中文分词,是因为es提供的分词是英文分词,对于中文分词不友好,因此我们需要一个中文分词器来用于搜索和使用。
默认使用standard分词器

二、ik分词器安装以及使用
2.1 安装
通过github复制es对应版本的链接

定位到/usr/share/elasticsearch/bin/elasticsearch-plugin程序,然后执行其install命令。
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.4.1/elasticsearch-analysis-ik-8.4.1.zip
期间会询问是否真的要安装对应插件,输入y。
安装完成后,将在plugins/analysis-ik/下生成文件并且在/etc/elasticsearch/analysis-ik下生成配置文件
2.2使用
2.2.1 IK分词器的两种模式:
- ik_smart:最少切分,粗粒度,分词不够细,文档没有那么容易给搜索到,但占用内存少,可以缓存更多的数据,查询效率更高一点。
- ik_max_word:最细切分,细粒度,分词够细,文档容易给搜索到,但占用内存大。
2.2.2 使用ik_smart模式:

2.2.3 使用ik_max_word模式:

三、分词器扩展以及停用
3.1 背景:
分词器底层应该是依赖于一个字典,但这个字典中的词汇,肯定不可能涵盖我们生活中所有的词汇,而且我们使用了很多新生的词汇,这些词汇在字典中查不到的时候,分词器就会逐个字逐个字的分词,这个时候就需要对分词器进行拓展。但比如“的”这些字眼也会给分词出来,无意义且占空间,所以应该停用这种分词。
3.2分词器的拓展

编辑ext.dic文件,添加想要拓展的词语即可:
vim ext.dic
ext.dic需自己创建,文件位置: IKAnalyzer.cfg.xml同个目录下
未添加拓展词"禅道"前

vim ext.dic
多个词语换行分隔
保存并重启elastic服务
添加拓展词"禅道"后的效果

3.3 停用字典

未添加停用词"的"前的效果

每次修改文件后需重启elastic服务
添加停用词"的"后的效果,过滤了“的”

4、总结:



浙公网安备 33010602011771号