1.拉取
docker pull elasticsearch:7.7.0
2.运行
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
3.得到容器id
docker ps -a
4.访问
http://云服务ip:9200/或本机ip
5.安装ElasticSearch-Head
docker pull mobz/elasticsearch-head:5
6.创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
7.启动 docker start 容器id
docker start 571e0462e640:
8.处理跨域
进入容器
docker exec -it elasticsearch /bin/bash
编辑文件
vi config/elasticsearch.yml
添加内容
http.cors.enabled: true
http.cors.allow-origin: "*"
exit退出容器,接着执行
docker restart 容器ID
最好两个都重启
测试http://192.168.153.100:9100/
{
"Content-Type":" application/ json",
"analyzer":"ik_max_word",
"text":"华瑞IT教育欢迎你"
}
_analyze?pretty=true
9.复制
docker cp 571e0462e640:/usr/src/app/_site/vendor.js /usr/local/
修改
vi /usr/local/vendor.js
/输入你要搜索的内容,即可马上定位
"application/x-www-from-urlencodes"修改为"application/json;charset=UTF-8"
复制回去
docker cp /usr/local/vendor.js 571e0462e640:/usr/src/app/_site
#重启docker restart 容器id
docker restart 571e0462e640
docker restart 2f1f60dbe546
10.安装IK分词器 (很多同学这里没弄好)不是head的容器id
docker exec -it elasticsearch容器ID /bin/bash
docker exec -it 2f1f60dbe546 /bin/bash
用wget下载,如果不认识这个命令
yum install wget
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
当你使用wget安装出现Unable to establish SSL connection时执行以下俩个命令即可。我遇到了。
yum install opensslls
yum install openssl-devel
上面下载有问题:wget也搞不下来的话,我就从本地上传到/soft中。复制到容器中:
docker cp /soft/elasticsearch-analysis-ik-7.7.0.zip 848d04bf3db9:/usr/share/elasticsearch/plugins/IK
848d04bf3db9是elasticsearch的id(这是另一次测试)
docker exec -it 848d04bf3db9 /bin/bash
创建文件夹IK,
mkdir /usr/share/elasticsearch/plugins/IK
将压缩包移过去
移动
mv elasticsearch-analysis-ik-7.7.0.zip /usr/share/elasticsearch/plugins/IK
进入目录
cd /usr/share/elasticsearch/plugins/IK
解压
unzip elasticsearch-analysis-ik-7.7.0.zip
退出容器
exit
重启容器elasticsearch容器ID
docker restart elasticsearch容器ID
11.用postman测试是否安装成功,也可以用elasticsearch head进行测试
get请求
http://云服务器ip:9200/_analyze
提交的json
{
"analyzer":"ik_max_word",
"text":"华瑞IT教育欢迎你"
}
看是否识别
停止词和扩展词配置
进入容器:docker exec -it 容器id /bin/bash
进入目录:cd /usr/share/elasticsearch/plugins/IK
过入目录:cd config
查看一下文件内容:cat IKAnalyzer.cfg.xml
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
配置,此时会中文乱码,执行下面的代码
cat >>~/.vimrc<<EOF
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
:set shiftwidth=2
:colorscheme desert
:set ts=2
:set expandtab
:%retab!
EOF
vi IKAnalyzer.cfg.xml
<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>
保存并退出
:wq!
自己创建两个字典文件,输入相应内容,
停止词:注意后面的中文语气助词
vi stopword.dic
a
an
and
are
as
at
be
but
by
for
if
in
into
is
it
no
not
of
on
or
such
that
the
their
then
there
these
they
this
to
was
will
with
了
呢
的
吗
扩展词:输入下面的中文
vi ext.dic
仰天长啸 三十功名尘与土 奥利给 华瑞IT教育
保存并退出
:wq!
退出容器
exit
重启elasticsearch
docker restart elasticsearch
测试:哈哈,这里再介绍一下docker安装kibana
docker pull kibana:7.7.0
--- elasticsearch:7.7.0
启动容器
#运行kibana 注意IP一定不要写错
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://云服务器ip:9200 -p 5601:5601 -d kibana:7.7.0
#进入容器 85f61cb6b5c4
docker exec -it 容器ID /bin/sh
docker exec -it 85f61cb6b5c4 /bin/sh
#使用vi 修改文件内容
vi /usr/share/kibana/config/kibana.yml
server.name: kibana
server.host: "0"
#elasticsearch.hosts: [ "http://elasticsearch:9200" ]
elasticsearch.hosts: [ "http://云服务器ip:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN
#设置kibana中文显示
http://自己的IP地址:5601
#查看kibana容器日志
docker logs -f 容器ID