Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)
原创
©著作权归作者所有:来自51CTO博客作者gblfy的原创作品,请联系作者获取转载授权,否则将追究法律责任
IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。
文章目录
一、静态web搭建
1. 安装nginx
nginx 1.9.9 Linux 环境安装
2. 创建es目录
在nginx新建一个文件夹es,将ik所需要使用的资源放在里面,用于存放新建的词库
3. 创建分词文件
在es目录下,新建一个文件new_word_fenci.dic,将需要分词的内容放在该文件中
添加内容:
4. 存放静态
将es移动到html目录下,因为nginx默认访问的是html目录
5. 验证
http://192.168.92.128/es/new_word_fenci.dic
如图:
二、配置远程分词
2.1. 切换用户
2.2. 配置分词
编辑IKAnalyzer
cd /app/elasticsearch-7.15.2/config/analysis-ik
vim
2.3. 远程分词
原配置
调整后配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://192.168.92.128:80/es/new_word_fenci.dic</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
2.4. 重启es
说明:kibana需要一直处于启动
2.5. 验证分词
# 查阅凯悦分词
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
添加我是专家到分词库:
一个分词为一行
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]
3.5. 分词验证
# 查阅凯悦分词
GET /shop/_analyze
{
"analyzer": "ik_smart",
"text": "我是专家"
}
GET /shop/_analyze
{
"analyzer": "ik_max_word",
"text": "我是专家"
}