背景
在使用 elasticsearch 的过程中,总会遇到与分词相关的需求,这里将针对常用的 elasticsearch hanlp (后面统称为 es hanlp)分词插件进行讲解演示配置自定义业务字典,提高 es hanlp 分词的准确性,同时也提高查询效率。关于es hanlp的下载安装可以参考文章:https://developer.aliyun.com/article/1162376
自定义词典配置
新增自定义词典
es hanlp 默认的字典配置路径是 ES_HOME/plugins/analysis-hanlp/data/dictionary/custom,因此在 ES_HOME/plugins/analysis-hanlp/data/dictionary/custom 目录中新增自定义词典,这里为了不改变es hanlp 插件原始的词典内容,因此需要新增业务关键词词典 dongao.txt,里面可以加入业务相关的词
修改 hanlp.properties
找到 hanlp.properties 配置文件路径 ES_HOME/config/analysis-hanlp
修改 hanlp.properties ,修改 CustomDictionaryPath ,增加自定义词典配置
这里分号后面加【空格】的意思就等于是
data/dictionary/custom/dongao.txt;
省略了前面的路径部分。
自动加载词典
配置完成自定义词典后,无需重启es,等待1分钟后,词典自动加载。
加载完成之后我们可以开始测试是否生效。
注:每个节点都需要做上述更改
自定义词典测试
1.当没有配置自定义词典的时候我们测试
POST _analyze
{
"text": "普通合伙人",
"analyzer": "hanlp"
}
返回结果是
{
"tokens" : [
{
"token" : "普通",
"start_offset" : 0,
"end_offset" : 2,
"type" : "a",
"position" : 0
},
{
"token" : "合伙人",