1.下载并安装ik插件
- 下载
ik提词器下载地址
找到对应自己ElasticSearch版本的进行下载 - 安装
下载之后解压到ElasticSearch的本地docker挂载目录
(安装ElasticSearch点这里)
2.安装nginx
- 先建一个nginx容器
//新建容器
docker run -p 80:80 --name nginx -d nginx
- 将niginx的配置文件从容器中复制出来
docker container cp nginx:/etc/nginx .
- 放在本地的挂载目录下
- 删除nginx容器
docker stop nginx
docker rm $ContainerId
- 新建nginx容器
docker run -p 80:80 --name nginx \
-v /Users/guawazhu/docker-v/gmall/nginx/html:/usr/share/nginx/html \
-v /Users/guawazhu/docker-v/gmall/nginx/logs:/var/log/nginx \
-v /Users/guawazhu/docker-v/gmall/nginx/conf:/etc/nginx \
-d nginx
这样nginx容器就创建好了
盘符也挂载好了
在html文件夹下新建一个es文件夹,里面放一个analizer.txt文件
浏览器访问
- 配置ik分词器的配置文件
改成刚才配置的anlizer.txt的访问路径
- 重启elasticsearch容器
docker restart elasticsearch
- 测试分词器
无效?!
检查发现提词器配置文件里的ip地址写错了!
更正,测试:
好家伙elasticsearch重启,这次直接起不来了.
报了个:
Exception in thread "main" java.nio.file.NotDirectoryException: /usr/share/elasticsearch/plugins/.DS_Store
Exception in thread "main" java.nio.file.NotDirectoryException: /usr/share/elasticsearch/plugins/.DS_Store
at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:438)
at java.base/java.nio.file.Files.newDirectoryStream(Files.java:476)
at java.base/java.nio.file.Files.list(Files.java:3765)
at org.elasticsearch.tools.launchers.BootstrapJvmOptions.getPluginInfo(BootstrapJvmOptions.java:49)
at org.elasticsearch.tools.launchers.BootstrapJvmOptions.bootstrapJvmOptions(BootstrapJvmOptions.java:34)
at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:86)
意思就是说Elasticsearch在从我们映射好的plugins盘符下装插件的时候,发现了个.DS_Store
,这玩意儿不是个文件夹,没法给咱们装插件!
众所周知.
打头的是隐藏文件,不管这个隐藏文件是哪里来的,它不能出现在这里,删掉它!
大功告成~
继续测试
可以发现提词器有效了~