安装elasticsearch、kibana、IK分词器、扩展IK词典
后面还会安装kibana
,这个会提供可视化界面方面学习。
需要注意的是elasticsearch
和kibana
版本一定要一样!!!
否则就像这样
elasticsearch
1、创建网络
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
docker network create es-net
2、镜像安装
pull 安装
因为镜像文件比较大,将近1个G所以下载会很慢,根据自己需求选择合适方式。
如果觉得比较大,可以找一个现成的镜像包之后拖到虚拟机里面即可。
docker pull elasticsearch:7.12.1
本地加载
如果觉得大,可以找现成的导入es.tar
是你的镜像
# 导入数据
docker load -i es.tar
3、运行
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--restart=always elasticsearch:7.12.1
-e "cluster.name=es-docker-cluster"
:设置集群名称-e "http.host=0.0.0.0"
:监听的地址,可以外网访问-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
:内存大小-e "discovery.type=single-node"
:非集群模式-v es-data:/usr/share/elasticsearch/data
:挂载逻辑卷,绑定es的数据目录-v es-logs:/usr/share/elasticsearch/logs
:挂载逻辑卷,绑定es的日志目录-v es-plugins:/usr/share/elasticsearch/plugins
:挂载逻辑卷,绑定es的插件目录--privileged
:授予逻辑卷访问权--network es-net
:加入一个名为es-net的网络中-p 9200:9200
:端口映射配置--restart=always
重启电脑自动运行
4、验证安装
在浏览器输入http://192.168.31.140:9200,【你的IP地址:9200】,出现以下表示安装成功
部署kibana
kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。
版本要和elasticsearch
一样,如果不一样会出现这样的情况
1、安装
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
--restart=always kibana:7.12.1
--network es-net
:加入一个名为es-net的网络中,与elasticsearch在同一个网络中-e ELASTICSEARCH_HOSTS=http://es:9200"
:设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch-p 5601:5601
:端口映射配置--restart=always
重启电脑自动运行
2、验证安装
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
安装完成后是这个页面。
根据自己需求选择我这里选择第二个。
之后就可以调试了
安装IK分词器
在线安装ik插件(较慢)
我反正是试过了,下载失败,一直报错
# 进入容器内部
docker exec -it elasticsearch /bin/bash
# 在线下载并安装
./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 elasticsearch
离线安装ik插件(推荐)
1、查看数据卷目录
安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:
docker volume inspect es-plugins
找到这个地址
"/var/lib/docker/volumes/es-plugins/_data"
进入到这个目录将解压好的内容拖入
2、重启es
docker restart es
3、测试
会根据中文切割词语
扩展词词典
这些词只是一部分,但是随着时代发展还有很多词没有填入,有时我们需要手动将一些词语填入,扩展词汇。
在你的目录下/var/lib/docker/volumes/es-plugins/_data/ik/config/
IKAnalyzer.cfg.xml
扩展词语
1、配置
<?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">ext.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic</entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
2、添加
新建ext.dic
可以参考config目录下复制一个配置文件进行修改
按照这种格式添加,比如添加以下
比如
真牛逼
还有谁
太帅了
我真牛逼
3、重启es
docker restart es
4、再次测试
成功!!!
5、屏蔽词
添加完记得重启
docker restart es
6、测试屏蔽词
测试前
测试后
成功!!!