IK分词器详解IK分词器
什么是 IK 分词器
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一个词 ,比如"我爱技术"会被分为"我","爱","技","术",这显然不符合要求,所以我们需要安装中文分词器IK来解决这个问题
IK提供了两个分词算法:ik_smart和ik_max_word
其中ik_smart 解压缩后拷贝到ElasticSearch的plugins文件夹下
创建 ik 目录
重启ES
之前是没有插件加载的
可以清晰的看到加载了 analysis-ik
也可以通过ES自带的工具查看 命令行执行 ElasticSearch-plugin list
进入Kibana测试
先测试 ik_smart
最少划分
GET _analyze
{
"analyzer": "ik_smart"
, " 这种自己需要的词,需要自己加到字典中
IK分词器增加自己的配置
我们找到IK的配置文件, 位于ik/config/IKAnalyzer.cfg.xml
IKAnalyzer.cfg.xml
<? 白话Elasticsearch28-IK中文分词之IK中文分词器的安装和使用IK安装
根据github上的指导
? 下 新建目录 ik
? 将 zip包解压到 ik目录下 ,我这里用的是6.4.1 ,所以我下载对应的版本的ik
?
重启es ,观察启动日志 loaded plugin [analysis-ik]
? ----
ik分词器基础知识
ik有两种analyzer,可根据自己的需要自己选择,但是一般是选用ik_max_word
----
ik_max_word
ik_max_word: 会将文本做最细粒度的拆分 ,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
----
ik_smart
ik_smart ES 中文分词器ik因为ik目前最高支持es 8.2.3,所以本文基于8.2.3的环境编写.
1、集群环境构建
参考Es 集群搭建及相关配置和相关参数解读,分别下载Es和kibana 8.2.3版本,部署到相应的服务器, 环境构建到此结束.
2、ik分词器安装部署 下载地址
注意es和ik分词器的版本匹配.这里下载8.2.3的ik分词器
下载完毕之后去es的工作目录的plugins文件夹下新建ik文件夹,将下载下来的ik 压缩包解压缩至ik文件夹下,重启es,集群中所有节点重复此操作.
3、ik 分词器简介
3.1 词库介绍
ik分词器主要有以下词库,位于config目录下
(1)、main.dic 主词库,包含日常生活中常用的词 ik_smart 、ik_max_word 下面分别测试,使用kibna dev tools.
ik_smart
GET test_index/_analyze
{
"tokenizer": "ik_smart 分的粒度更加的细和全面,所以一般都是用ik_max_word作为分词器.
3.4 扩展分词
一般情况下,词库是够用的,但是如果碰到一些特殊词汇如网络用词,这个时候就需要手动添加相关的词汇进入到词库中.ik 