ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇

什么是IK分词器?

分词:把一段中文或者别的划分成一个一个的关键字,我们在搜索的时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如"我爱魏一鹤"会被分成"我",“爱”,“魏”,“一”,“鹤”,这显然是不符合要求的,索引我们需要安装中文分词器IK来解决这个问题
如果要使用中文,建议使用ik分词器
IK提供了两个分词算法,ik_smart和ik_max_world,其中ik_smart为最少切分,ik_max_wold为最细颗粒度划分,一会都会分别来测试

下载IK分词器

下载网址:https://github.com/medcl/elasticsearch-analysis-ik
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第1张图片
下载到本地,放入es插件中即可,这里我在es的plugins目录下创建一个IK目录

ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第2张图片
解压缩,目录如下
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第3张图片
然后重启观察ES
注意:没有使用ik分词器插件的时候黑窗口会提示no plugins loaded(没有插件加载)
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第4张图片
我们也可以使用命令(elasticsearch-plugin list)查看es下的全部加载的插件
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第5张图片

elasticsearch-plugin list

ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第6张图片
使用KIbana测试IK分词器

打开开发工具台
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第7张图片

ik_smart 最少分词器

分词结果比较少

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "中国共产党"
}

ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第8张图片

ik_max_word 颗粒度最细分词器

分词结果比较多,组成各种结果,穷尽词库的可能!
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第9张图片
再看个例子,把我们的句子换成 超级喜欢魏一鹤学习Java
首先看最少分词
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第10张图片
然后是最细颗粒度分词
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第11张图片
问题来了 我们输入超级喜欢魏一鹤学习Java,发现魏一鹤被拆开了,这种需要自己加入到分词器字典中的词如何处理呢?

IK分词器自定义词汇

找到并且打开IKAnalyzer.cfg分词器配置文件
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第12张图片
自己自定义新建一个dic文件,一个dic就算一个字典,ik自带的字典是远远不够用的,我们需要手动去创建字典
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第13张图片
新增字典项内容并且保存
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第14张图片
然后把我们自定义配置的字典加入到配置文件让字典生效
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第15张图片
配置完之后保存,然后重启es,注意观察,在重启es的时候会发现黑窗口已经加载我们自定义的字典weiyihe.dic
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第16张图片
重启kibana,再次测试使用过自定义字典之后魏一鹤是否被分割

不管是哪种分词,魏一鹤都没被分割!说明我们自定义字典配置成功!
ElasticSearch安装IK分词器并使用IK分词器和Kibana进行自定义词汇_第17张图片
以后需要什么词汇,直接在我们的weiyihe.dic字典中去定义即可使用

你可能感兴趣的:(ElasticSearch,elasticsearch,搜索引擎,大数据)