简述
学习es,在学生云上部署一个ElasticSearch,实现课设的站内搜索。
Docker安装ElasticSearch
下载ElasticSearch镜像
查找镜像
-
使用docker指令,查询es镜像
docker search elasticsearch -
在官网搜索自己需要的版本
下载镜像
docker pull elasticsearch:7.10.1
查看镜像
docker images
创建并运行ElasticSearch容器
运行容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.10.1监测容器是否启动
docker ps
在浏览器中打开http://localhost:9200这个网址,如果你是在服务器上安装,想要对外访问还必须打开你服务器的9200端口,然后将localhost换成你服务器的ip地址即可。如果能看到以下信息则说明我们的es是已经安装好了的。
配置ElasticSearch
配置ElasticSearch,使其可以跨域访问。
进入容器
docker exec -it elasticsearch /bin/bash这里elasticsearch是我的容器名,也可以使用容器ID进入config文件夹
cd /usr/share/elasticsearch/config/打开 elasticsearch.yml 文件
vi elasticsearch.yml在elasticsearch.yml的文件末尾加上:
http.cors.enabled: true http.cors.allow-origin: "*"保存并退出
- 按
Esc- 类型
:wq- 按
Enter退出容器
exit重启容器
docker restart elasticsearch这里elasticsearch是我的容器名,也可以使用容器ID
安装IK分词插件
下载插件
进入容器(指令见上文)
进入插件文件夹
cd /usr/share/elasticsearch/plugins/创建文件夹
mkdir ik下载IK分词插件
方法一: 在
cd /usr/share/elasticsearch/plugins/文件夹下
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1.0/elasticsearch-analysis-ik-7.10.1zip方法二: (我使用的方法二,方法一网络问题我这下载失败了)
- 点击这里找到和你安装的es符合的IK安装包,下载下来
- 将压缩包拷贝到云服务器(我使用的是xftp)
- 缩包拷贝到elasticsearch容器
/usr/share/elasticsearch/plugins/ik/文件夹下docker cp ik elasticsearch:/usr/share/elasticsearch/plugins/ik(这里ik是我把压缩包重命名为ik)- 解压并删除压缩包
- 重启容器
测试IK分词
-
增加索引
在控制台输入:
curl -X PUT http://localhost:9200/test -
测试ik_smart分词
curl -X POST \ 'http://127.0.0.1:9200/test/_analyze?pretty=true' \ -H 'Content-Type: application/json' \ -d '{"text":"我们是中国人","tokenizer":"ik_smart"}' -
测试ik_max_word分词
curl -X POST \ 'http://127.0.0.1:9200/test/_analyze?pretty=true' \ -H 'Content-Type: application/json' \ -d '{"text":"我们是中国人","tokenizer":"ik_max_word"}'