Docker 环境下为 Elasticsearch 安装IK 分词器
背景介绍
1024 程序员节,祝各位大佬节日快乐! 接上篇,安装好 Elasticsearch 和 kibana 就可以进行 Es 操作。 背景 Elasticsearch 在创建倒排索引时,需要对文档进行分词;在搜索时对用户的输入内容进行分词,但默认的分词效果不好,可以安装IK分词来处理。
一、IK 分词器安装
主要有两种方式:在线安装和离线安装
1、在线安装
第一步、进入容器内部
// 进入容器内部
docker exec -it es /bin/bash
第二步、下载安装 将 分词器安装到 plugin 文件下,注意版本要一致,这里统一为 7.12.1
// 在线安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
第三步、退出并启动
// 退出
exit
// 重启
docker restart es
2、离线安装
第一步、查询数据卷目录 插件安装需要获取 Elasticsearch 的plugins 目录的挂载位置。
// 输入数据卷
docker volume inspect es-plugins
第二步、上传 安装包到 指定位置 下载 elasticsearch-analysis-ik-7.12.1.zip 放到 第一步查询目录下,进行挂载,注意这里的版本选择的是 7.12.1
第三步、重启容器
// 重启
docker restart es
// 查看日志
docker logs -f es
查看运行日志,如下图所示。
三、验证
IK 分词主要有两种模式 ik_smart ==最少切分 粗粒度切分 智能切分== ik_max_word ==最细切分 最新粒度切分== 举例如下:
POST /_analyze
{
"text":"1024程序员节",
"analyzer":"ik_max_word"
}
ik_smart 粗粒度分词,只展示出 程序员 ik_max_word 细粒度分词,展示出 程序员、程序、员
四、分词设置
对于默认的分词库可以进行扩展或者停用。 配置文件位置:IK分词器安装目录下 config 配置文件下IKAnalyzer.cfg
<!--配置远程扩展字典 -->
<entry key="remote_ext_dict">ext.dic</entry>
<!--配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords">stopword.dic</entry>
在 config 下新建 扩展文件 ext.dic 和 停止扩展词文件 stopword.dic,分别添加相应的内容即可!
参考博客
【1】https://blog.csdn.net/u012211603/article/details/90757253