前提:首先确保elasticsearch容器已启动
方式一:在线安装
1. 进入容器
docker exec -it elasticsearch /bin/bash
2. 在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-
ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip
注:这个过程大概会花几分钟时间,根据网络情况而定
另外,根据自己的elasticsearch版本,在这里选择相应的ik版本:http://code.google.com/p/ik-analyzer/)
方式二:离线安装
由于网络等原因,在线安装可能不太顺利。可以选择离线安装。
1. 将本地elasticsearch-analysis-ik-6.3.2.zip上传到elasticsearch容器中
docker cp elasticsearch-analysis-ik-6.3.2.zip elasticsearch:/usr/share/elasticsearch/plugins
2. 进入elasticsearch容器
docker exec -it elasticsearch /bin/bash
此时,压缩包已在容器中:
3. 在容器中创建ik目录, 并将压缩包移到ik目录下, 并解压
# 创建ik目录
mkdir /usr/share/elasticsearch/plugins/ik
# 压缩包移到ik目录下
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-6.3.2.zip /usr/share/elasticsearch/plugins/ik
# 进入ik目录
cd /usr/share/elasticsearch/plugins/ik
# 解压
unzip elasticsearch-analysis-ik-6.3.2.zip
#删除压缩包
rm -rf elasticsearch-analysis-ik-6.3.2.zip
4.退出并重启镜像
exit
docker restart elasticsearch
5.验证一下
# 创建一个为accounts的index,并指定字段分词器
PUT accounts
{
"mappings": {
"person": {
"properties": {
"username": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
"desc": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}
}
}
# 插入2数据
POST accounts/person
{
"user": "张三的歌",
"title": "Python网络爬虫工程师",
"desc": "系统管理"
}
POST accounts/person
{
"user": "李四",
"title": "java后端开发工程师",
"desc": "账户管理系统"
}
# 根据条件查询
GET accounts/person/_search
{
"query" : {
"match" : {
"title" : "后端开发工程师"
}
}
}
查询结果如下: