Elasticsearch之中文分词器插件analysis-ik的自定义词库

概述

在使用Elasticsearch搜索关键词的时候,有时候发现一些短语没被分词器识别出来,比如"这本书今年首次公开发售",此时搜 "公开发售",这个短语命中不了,此时需要用到自定义的词库。

analysis-ik 添加自定义词库

  1. 首先在 Elasticsearch的 ik 插件 plugins\analysis-ik\config 目录下创建custom目录,然后创建my.dic文件
    之后,就可以在文件里添加自己想要的词了, 每一个词语一行(编码格式:UTF-8 without BOM 格式)
  2. 修改 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>
  1. 重启 es 服务
    在启动日志里找到: [Dict Loading] custom/mydict.dic这段信息,就算自定义词库被加载成功了
重启es服务
  1. 在elasticsearch-head中验证一下
验证

就可以在列表中看到"公开发售"

验证

总结

好了,以上就是简单的analysis-ik自定义词库的创建和使用,在搜索中经常会使用到的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容