有两种方式:
1、本地加载,每次修改后需要重启es服务器
2、远程加载,动态更新(通过接口获取词典内容)
需要修改的配置文件:
E:\es\es7.0\elasticsearch-7.0.0-windows-x86_64\elasticsearch-7.0.0\plugins\ik\config\IKAnalyzer.cfg.xml
实际的地址,更换为自己的即可
一、加载本地词典
1、创建使用中文分词器的测试索引test,设置分词器
PUT /test
{
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"farm_name": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}
}
2、自定义词典配置
配置ext_dict的词典,多个词典用分号分隔。红色部分为要修改的配置
我这里定义的词典就在config目录下,所以直接指定文件名即可。
<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE properties SYSTEM “http://java.sun.com/dtd/properties.dtd”>
3、添加词典内容,多个词语换行书写
4、测试效果,查看分词效果。可以看到两个自定义分词中的文件都可以正确加载并分词了
二、加载远程词典
1、提供远程词典接口(本文使用nginx发布词典)
(1)配置nginx,添加nginx配置
server {
listen 9070;
server_name localhost;
location / {
root d://config/;
}
}
(2)测试一下,是否发布成功,确保能够获取到文件
(3)添加词典内容
(4)分词测试
(5)不重启es,修改remote.dir内容。添加词典内容
(6)再次测试,查看效果
2、配置远程字典接口位置,红色部分为配置的远程接口地址
(1)修改配置,配置远程字典接口位置
<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE properties SYSTEM “http://java.sun.com/dtd/properties.dtd”>