1. 安装elasticsearch
1. 下载elasticsearch镜像
docker pull elasticsearch:7.4.2
2. 下载可视化客户端kibana镜像(非必须)
# 这个不是必须
docker pull kibana:7.4.2
3. 创建ElasticSearch实例
- 创建外部挂载目录
# 配置文件的挂载目录
mkdir -p /mydata/elasticsearch/config
# 数据的挂载目录
mkdir -p /mydata/elasticsearch/data
# 创建配置文件,并写入配置允许远程访问
echo "http.host:0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml
# 保证权限
chmod -R 777 /mydata/elasticsearch/
- 创建容器实例
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
暴露了两个端口,配置为单节点允许,设置了java虚拟机占用内存,挂载了三个目录
4. 设置elasticsearch开机自启
docker update elasticsearch --restart=always
5. 创建kibana客户端实例
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://10.128.240.183:9200 -p 5601:5601 \
-d kibana:7.4.2
- 将里面的ip改为你安装elasticsearch的主机ip
6. 设置kibana开机自启
docker update kibana --restart=always
2. 安装ik分词器插件
1. 切换到elasticsearch插件的挂载目录
cd /mydata/elasticsearch/plugins
2. 下载ik分词器并解压到当前文件夹
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
# 如果下载不下来去网上找
rm –rf *.zip
# 解压后的文件夹重命名为ik
mv elasticsearch-analysis-ik-7.4.2 ik
3. 确认是否安装好了分词器
# 进入容器
docker exec -it elasticsearch /bin/bash
# 切换目录
cd bin
# 查询系统的分词器
elasticsearch-plugin list
3. 自定义词库
1. 切换到插件挂载目录
cd /mydata/elasticsearch/plugins/ik/config
2. 修改ik分词器的配置文件
vim 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"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://192.168.128.130/fenci/myword.txt</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
- “http://192.168.128.130/fenci/myword.txt” 是远程扩展词典的位置,这里放在nginx中