IK分词器插件
概述
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个 词,比如 “你好世界” 会被分为”你”,”好”,”世”,”界”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
如果要使用中文,建议使用ik分词器! IK提供了两个分词算法:ik_smart
和 ik_max_word
,其中 ik_smart 为最少切分,ik_max_word为最细粒度划分!一会我们测试!
下载安装
https://github.com/medcl/elasticsearch-analysis-ik/releases
选择和对应Elasticsearch的版本进行下载(我这里使用的是7.6.2)
下载完成后直接把它放在elasticsearch的plugins目录下解压即可。我重新命名为ik
注意plugins不能存在其他不是插件的文件,例如zip。接着重启Elasticsearch
可以看到已经把这个ik插件加载了。
测试
使用kibana来进行测试。
ik_smart
:会做最粗粒度的拆分,例如中华人民共和国人民大会堂,即使字典里存在中华,人民,中华人民,但是中华人民共和国命中最多,所以使用,同理查出人民大会堂。
ik_max_word
:会将文本做最细粒度的拆分,穷尽字典词库的可能!
但是当我们想搜索一个耗子为汁
时,结果却不如人意
词典里并没有这个词,所以没有达到我们想要的效果。于是我们需要自定以词典。我们在ik分词器的目录下进入config
目录,打开IKAnalyzer.cfg.xml
这就是我们的配置文件
根据提示我们可以在这个目录里创建一个自定义的字典.dic
文件
字典里加入我们想要的词。
接着配置ik配置文件
重启Elasticsearch和Kibana,可以看到已经成功我们自定义的字典了
接着接着测试查询效果
以后的话,我们需要自己配置分词就在自己定义的dic文件中进行配置即可!