概述
在使用Elasticsearch搜索关键词的时候,有时候发现一些短语没被分词器识别出来,比如"这本书今年首次公开发售",此时搜 "公开发售",这个短语命中不了,此时需要用到自定义的词库。
analysis-ik 添加自定义词库
- 首先在 Elasticsearch的 ik 插件 plugins\analysis-ik\config 目录下创建custom目录,然后创建my.dic文件
之后,就可以在文件里添加自己想要的词了, 每一个词语一行(编码格式:UTF-8 without BOM 格式) - 修改 ik 的配置文件
修改IKAnalyzer.cfg.xml文件,如下:
<?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">custom/mydict.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
- 重启 es 服务
在启动日志里找到: [Dict Loading] custom/mydict.dic这段信息,就算自定义词库被加载成功了
- 在elasticsearch-head中验证一下
就可以在列表中看到"公开发售"
验证总结
好了,以上就是简单的analysis-ik自定义词库的创建和使用,在搜索中经常会使用到的。
网友评论