ElasticSearch的安装与配置
2023/2/15
ElasticSearch的安装与配置
ES的安装
下载镜像
使用如下命令拉取ElasticSearch镜像并指定版本号7.17.9
docker pull elasticsearch:7.17.9
创建配置文件
创建配置文件夹
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
mkdir -p /mydata/elasticsearch/plugins创建配置文件
echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml修改文件权限
chmod -R 777 /mydata/elasticsearch/创建实例
启动
docker run -d --restart=always --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m --Xmx256m" -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.17.9
查看运行情况
命令查看
docker ps
浏览器查看
通过浏览器访问 IP地址:9200 查看

安装插件
项目地址: https://github.com/medcl/elasticsearch-analysis-ik
下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases
版本对应
ik分词器的版本必须与ElasticSearch版本完全匹配
| IK version | ES version |
|---|---|
| master | 7.x -> master |
| 6.x | 6.x |
| 5.x | 5.x |
| 1.10.6 | 2.4.6 |
| 1.9.5 | 2.3.5 |
| 1.8.1 | 2.2.1 |
| 1.7.0 | 2.1.1 |
| 1.5.0 | 2.0.0 |
| 1.2.6 | 1.0.0 |
但是部分版本会出现不存在的情况。
此时可以通过下载相近的版本,解压后修改plugin-descriptor.properties文件里面的elasticsearch.version就可以
分词插件的安装
安装方式主要分为三种:
- 在容器内部通过
elasticsearch-plugin命令安装 - 在虚拟机中下载解压到挂在的plugins文件夹
- 下载、解压然后放到虚拟机的plugins文件夹下
方式一: 使用elasticsearch-plugin安装
进入容器内部命令行
docker exec -it elasticsearch /bin/bash执行安装命令
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip方式二: 虚拟机下载并安装
虚拟机下载ik分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip解压
unzip elasticsearch-analysis-ik-8.7.0.zip /mydata/elasticsearch/plugins/ik/方式三: 手动下载解压然后上传
自己从github上下载下对应的安装包,然后解压,上传到·/mydata/elasticsearch/plugins/ik·文件夹下
分词器安装的验证
在容器内执行如下命令, 查看已安装的插件
./bin/elasticsearch-plugin list
在Kibana中执行如下命令,查看分词效果
GET _analyze
{
"analyzer": "ik_smart",
"text": "我是一个中国人"
}
