ElasticSearch部署
在本文中,我们将介绍如何使用 Docker-compose 在 Debian 11 上部署 ElasticSearch。
ElasticSearch是一个开源的搜索引擎,它可以帮助我们快速地搜索和分析大量数据。
步骤1:安装Docker和Docker-compose
在Debian 11上安装Docker和Docker-compose非常简单。我们可以使用以下命令来安装它们:
sudo apt-get update
sudo apt-get install docker.io docker-compose
步骤2:创建Docker-compose文件
我们需要创建一个Docker-compose文件来定义ElasticSearch容器的配置。在此示例中,我们将使用ElasticSearch 7.14.0版本。我们可以使用以下命令创建一个名为docker-compose.yml的文件:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: elasticsearch
environment:
TZ: Asia/Shanghai
ES_JAVA_OPTS: -Xmx512m -Xms512m
discovery.type: single-node
ports:
- 9200:9200
- 9300:9300
volumes:
# 配置
- ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,z
# 数据存储
- ./data:/usr/share/elasticsearch/data:z
在上面的Docker-compose文件中,我们定义了一个名为elasticsearch的服务。我们使用ElasticSearch 8.6.2版本的官方Docker镜像。我们还定义了容器的名称,环境变量和端口映射。我们还映射了 ./data,它将用于持久化ElasticSearch数据。映射 ./config/elasticsearch.yml 用于自定义我们自己的配置
步骤3:启动ElasticSearch容器
我们可以使用以下命令启动ElasticSearch容器:
sudo docker-compose up -d
这将启动ElasticSearch容器并将其作为后台进程运行。我们可以使用以下命令检查容器是否正在运行:
sudo docker ps
步骤4:测试ElasticSearch
我们可以使用以下命令测试ElasticSearch是否正在运行:
curl http://localhost:9200
如果一切正常,您应该会看到类似于以下内容的输出:
{
"name" : "elasticsearch",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"version" : {
"number" : "7.14.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
"build_date" : "2021-07-29T20:49:32.864135063Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
这表明ElasticSearch正在运行并可以通过端口9200进行访问。
开启结巴分词插件
按照插件的仓库 elasticsearch-jieba-plugin 的步骤,下载或自行构建对应版本的插件,并放在 docker-compose.yaml 同目录下。
然后将 docker-compose.yaml 修改成如下:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: elasticsearch
environment:
TZ: Asia/Shanghai
ES_JAVA_OPTS: -Xmx512m -Xms512m
discovery.type: single-node
ports:
- 9200:9200
- 9300:9300
volumes:
# 配置
- ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,z
# 数据存储
- ./data:/usr/share/elasticsearch/data:z
# 分词插件
- ./plugins/jieba:/usr/share/elasticsearch/plugins/jieba
- ./plugins/jieba/dic/stopwords.txt:/usr/share/elasticsearch/config/stopwords/stopwords.txt