Docker容器中的Elasticsearch中离线安装IK分词器
Elasticsearch自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题。首先进入到plugins目录中下载分词器,下载完成后然后解压,再重启es即可。具体步骤如下: 注意:elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败。可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可。在该链接中找到符合自己版本的:https://github.com/medcl/elasticsearch-analysis-ik/releases
docker exec -it elasticsearch /bin/bash cd /usr/share/elasticsearch/plugins/ elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.1/elasticsearch-analysis-ik-7.5.1.zip exit docker restart elasticsearch
由于通过上述方式安装由于网络问题可能实现不了,所以可以通过离线安装
通过https://github.com/medcl/elasticsearch-analysis-ik/releases下载对应版本安装包 在es的plugins文件下(/usr/share/elasticsearch/plugins/)创建ik文件夹 cd /usr/share/elasticsearch/plugins/ mkdir ik 将下载好的安装包拷贝在这个文件夹下,同时减压即可
注意:安装es的ik分词器需要安装jdk
测试:
POST http://localhost:9200/_analyze?pretty=true { "analyzer": "ik_max_word", "text": "中国人民的儿子" }
结果:
{ "tokens" : [ { "token" : "中国人民", "start_offset" : 0, "end_offset" : 4, "type" : "CN_WORD", "position" : 0 }, { "token" : "中国人", "start_offset" : 0, "end_offset" : 3, "type" : "CN_WORD", "position" : 1 }, { "token" : "中国", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 2 }, { "token" : "国人", "start_offset" : 1, "end_offset" : 3, "type" : "CN_WORD", "position" : 3 }, { "token" : "人民", "start_offset" : 2, "end_offset" : 4, "type" : "CN_WORD", "position" : 4 }, { "token" : "的", "start_offset" : 4, "end_offset" : 5, "type" : "CN_CHAR", "position" : 5 }, { "token" : "儿子", "start_offset" : 5, "end_offset" : 7, "type" : "CN_WORD", "position" : 6 } ] }