文章目录IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。
- 一、静态web搭建
- 1. 安装nginx
- 2. 创建es目录
- 3. 创建分词文件
- 4. 存放静态
- 5. 验证
- 二、配置远程分词
- 2.1. 切换用户
- 2.2. 配置分词
- 2.3. 远程分词
- 2.4. 重启es
- 2.5. 验证分词
- 三、热更新词库
- 3.1. 自定义分词
- 3.2. 分词结果
- 3.3. 添加分词库
- 3.4. 日志监控
- 3.5. 分词验证
nginx 1.9.9 Linux 环境安装
2. 创建es目录在nginx新建一个文件夹es,将ik所需要使用的资源放在里面,用于存放新建的词库
cd /usr/local/nginx mkdir es3. 创建分词文件
在es目录下,新建一个文件new_word_fenci.dic,将需要分词的内容放在该文件中
cd es vim new_word_fenci.dic
添加内容:
凯悦4. 存放静态
将es移动到html目录下,因为nginx默认访问的是html目录
mv es ./html/5. 验证
http://192.168.92.128/es/new_word_fenci.dic
如图:
su - es2.2. 配置分词
编辑IKAnalyzer
cd /app/elasticsearch-7.15.2/config/analysis-ik vim IKAnalyzer.cfg.xml2.3. 远程分词
原配置
调整后配置
2.4. 重启esIK Analyzer 扩展配置 http://192.168.92.128:80/es/new_word_fenci.dic
2.5. 验证分词说明:kibana需要一直处于启动
# 查阅凯悦分词
GET /shop/_analyze
{
"analyzer": "ik_smart",
"text": "凯悦"
}
GET /shop/_analyze
{
"analyzer": "ik_max_word",
"text": "凯悦"
}
三、热更新词库
3.1. 自定义分词
# 查阅凯悦分词
GET /shop/_analyze
{
"analyzer": "ik_smart",
"text": "我是专家"
}
GET /shop/_analyze
{
"analyzer": "ik_max_word",
"text": "我是专家"
}
3.2. 分词结果
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "是",
"start_offset" : 1,
"end_offset" : 2,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "专家",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 2
}
]
}
3.3. 添加分词库
把我是专家添加分词库
cd /usr/local/nginx/html/es/ vim new_word_fenci.dic
添加我是专家到分词库:
我是专家
3.4. 日志监控一个分词为一行
[2021-11-21T16:26:35,785][INFO ][o.w.a.d.Dictionary ] [es] start to reload ik dict. [2021-11-21T16:26:35,787][INFO ][o.w.a.d.Dictionary ] [es] try load config from /app/elasticsearch-7.15.2/config/analysis-ik/IKAnalyzer.cfg.xml [2021-11-21T16:26:35,938][INFO ][o.w.a.d.Dictionary ] [es] [Dict Loading] http://192.168.92.128:80/es/new_word_fenci.dic [2021-11-21T16:26:35,946][INFO ][o.w.a.d.Dictionary ] [es] 凯悦 [2021-11-21T16:26:35,947][INFO ][o.w.a.d.Dictionary ] [es] 我是专家 [2021-11-21T16:26:35,947][INFO ][o.w.a.d.Dictionary ] [es] reload ik dict finished.3.5. 分词验证
# 查阅凯悦分词
GET /shop/_analyze
{
"analyzer": "ik_smart",
"text": "我是专家"
}
GET /shop/_analyze
{
"analyzer": "ik_max_word",
"text": "我是专家"
}



