什么是IK分词器?git
分词:即把一段中文或者别的划分红一个个的关键字,咱们在搜索时会把本身的信息进行分词,会把数据库中或者索引库中的数据进行分词,而后进行一个匹配操做,Elasticsearch的标准分词器,会将中文分为一个一个的字,而不是词,好比:“石原美里”会被分为“石”、“原”、“美”、“里”,这显然是不符合要求的,因此咱们须要安装中文分词器IK来解决这个问题。github
IK提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细力度划分。算法
中文分词插件IK
的网址是 https://github.com/medcl/elasticsearch-analysis-ikshell
咱们能够经过find / -name elasticsearch-plugin
命令搜索elasticsearch-plugin在什么地方数据库
安装IK时要注意将github上示例的版本改为本身的elasticsearch版本,我安装的是7.6.2,因此改为以下:vim
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
安装后重启Elasticsearch服务elasticsearch
咱们能够经过以下命令查看安装的Elasticsearch插件测试
/usr/share/elasticsearch/bin/elasticsearch-plugin list
首先咱们经过最ik_smart小切分来测试插件
接着,咱们经过ik_max_word最细力度切分来测试3d
可是有些咱们本身造的词,分词器是没法识别的(好比:白兮会被识别为两个词:白和兮),这就须要咱们本身加到分词器的字典中。
经过RPM方式安装的IK扩展配置文件地址以下
vim /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml
如今咱们在/etc/elasticsearch/analysis-ik
目录下建立一个本身的词典,例如:my.dic,并在其中添加"白兮"而后保存
这里要记得将my.dic文件所属的用户和组分别改成root和elasticsearch,防止elasticsearch用户是没法读取该文件的内容的,咱们能够看到默认的其它词典都是默认属于root用户和elasticsearch组的,咱们把自定义的词典也改为这样
而后将咱们新建的my.dic文件增长到IKAnalyzer.cfg.xml配置文件中
添加后重启Elasticsearch,而后经过kibana再从新测试,能够发现,白兮已经被识别为一个词了。
若是该文章对您有帮助,请您点个推荐,感谢。