部署ElasticSearch
创建网络
:::tips 因为还需要部署Kibana容器,因此需要让ES和Kibana容器互联,先创建一个虚拟网络 :::
docker network create es-net
拉取镜像
dockerspull elasticsearch:7.12.1
创建并运行容器
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 \
elasticsearch:7.12.1
说明:
-d #设置容器后台运行
--name es #设置容器名为es
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置容器的内存
-e "discovery.type=single-node" #设置es单节点运行
-v es-data:/usr/share/elasticsearch/data #挂载es数据到数据卷
-v es-plugins:/usr/share/elasticsearch/plugins #挂载es插件目录到数据卷
--privileged #授予逻辑卷访问权
--network es-net #加入刚刚设置的网络中
-p 9200:9200 #单点服务访问的端口映射
-p 9300:9300 #集群服务访问的端口映射
访问服务
:::tips 访问以下地址即可看到ElasticSearch的响应结果
- http://IP地址:9200
:::
部署Kibana
:::tips Kibana可以连接ElasticSearch,并提供了可视化界面便于学习 :::拉取镜像
docker pull kibana:7.12.1
创建并运行容器
```bash docker run -d \ —name kibana \ -e ELASTICSEARCH_HOSTS=http://es:9200 \ —network es-net \ -p 5601:5601 \ kibana:7.12.1
说明: -d #设置容器后台运行 —name kibana #设置容器名 -e ELASTICSEARCH_HOSTS=http://es:9200 #设置Kibana需要连接的es地址,IP可以使用容器名代替:es —network es-net #加入刚刚设置的网络中 -p 5601:5601 #配置Kibana映射的容器端口
<a name="JnygV"></a>
### 访问服务
:::tips
访问以下地址即可访问Kibana服务
- http://IP地址:5601
进入DevTools界面,即可通过命令操作ElasticSearch中的索引和文档
:::
<a name="Mtzeq"></a>
# 安装IK分词器
<a name="yFWoW"></a>
### 进入ElasticSearch容器
```bash
docker exec -it es /bin/bash
在线下载并安装IK分词器
./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
使用
:::tips IK分词器分为两种模式:
ik_smart
:最少切分ik_max_word
:最细切分 :::GET /_analyze
{
"analyzer": "ik_smart",
"text": "这是一段测试文字"
}
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "这是一段测试文字"
}
IK添加扩展词词典
:::tips 想要添加自定义扩展词词汇,就需要先进入IK分词器的安装目录 :::
查看数据卷
docker volume inspect es-plugins
进入config目录
:::tips 进入刚刚查询的目录,然后进入IK分词器的config目录 :::
新建文件
vi ext.dic
:::tips 然后根据需求在文件中添加需要的扩展词词汇,换行进行分隔 :::
添加扩展词配置
:::tips 编辑IKAnalyzer.cfg.xml文件,然后添加扩展词文件名到
标签中 ::: <?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>
</properties>
重启es容器
:::tips 重启es容器后自定义扩展词即可生效 :::
docker restart es
IK添加停用词词典
:::tips 想要添加自定义停用词词汇,就需要先进入IK分词器的安装目录 :::
查看数据卷
docker volume inspect es-plugins
进入config目录
:::tips 进入刚刚查询的目录,然后进入IK分词器的config目录 :::
新建文件
vi stopword.dic
:::tips 然后根据需求在文件中添加需要的停用词词汇,换行进行分隔 :::
添加扩展词配置
:::tips 编辑IKAnalyzer.cfg.xml文件,然后添加停用词文件名到
标签中 ::: <?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>
</properties>
重启es容器
:::tips 重启es容器后自定义停用词即可生效 :::
docker restart es