ElasticSearch
Dokcer中安装elastic search
(1)下载ealastic search(存储和检索)和kibana(可视化检索)
docker pull elasticsearch:7.14.0
docker pull kibana:7.14.0
(2)配置
# 将docker里的目录挂载到linux的/mydata目录中
# 修改/mydata就可以改掉docker里的
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
# es可以被远程任何机器访问
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
# 必须更改权限,es需要访问
chmod -R 777 /mydata/elasticsearch/
(3)启动Elastic Search
# 9200是用户交互端口 9300是集群通信端口
# -e指定是单阶段运行
# -e指定占用的内存大小,生产时可以设置32G
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-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.14.0
# 设置开机启动elasticsearch
docker update elasticsearch --restart=always
(4)启动kibana
# kibana指定了了ES交互端口9200 # 5600位kibana主页端口
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://[IP]:9200 -p 5601:5601 -d kibana:7.14.0
# 设置开机启动kibana
docker update kibana --restart=always
# 设置kibana中文界面——在kibana.yml中添加
i18n.locale: "zh-CN"
遇到问题
最近更新到Elastic Stack 7.13以上版本的朋友可能注意到了,在默认不开启Elastic 安全功能时,Kibana的搜索结果页面会多出一行提示,建议我们开启ElasticSearch 安全功能。
在个人学习或者内网开放ES+VPN连接的情况下我们完全不需要开启安全功能,其他情况在生产集群中还是建议开启安全选项的。
这是因为没有显式禁用安全选项导致的,也就是说ElasticSearch会提示你是不是忘了启用这个选项,只要在配置文件中显式禁用即可取消这个提示。
在elasticsearch.yml 配置禁用安全选项xpack.security.enabled,之后重启ElasticSearch即可:
xpack.security.enabled: false
安装IK分词器
# 安装wget
yum install wget
# 安装unzip
yum install unzip
# 进入es的plugins目录
# 这里已经将es的plugis目录映射到容器外部的文件夹中
cd /mydata/elasticsearch/plugins
# 或者进入容器
docker exec -it elasticsearch /bin/bash;
cd plugins/;
# 下载IK分词器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.0/elasticsearch-analysis-ik-7.14.0.zip
# 解压到ik目录下
unzip elasticsearch-analysis-ik-7.14.0.zip -d ik
# 修改ik权限为可读可写可执行
chmod -R 777 ik/
# 进入容器,查看ik是否安装成功
docker exec -it elasticsearch /bin/bash;
cd plugins/;
elasticsearch-plugin list;
# 显示ik则安装成功
# 删除plugins目录下的压缩包
cd ../plugins/;
rm -rf elasticsearch-analysis-ik-7.14.0.zip;
# 退出容器,重启es
exit;
docker restart elasticsearch;
自定义远程分词器
1、需要安装Nginx
mkdir /mydata/nginx/html/es
cd /mydata/nginx/html/es
vi fenci.txt
输入自定义词
2、修改/usr/share/elasticsearch/plugins/ik/config中的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.1.200/es/fenci.txt</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
i.txt