ElasticSearch部署

在本文中,我们将介绍如何使用 Docker-compose 在 Debian 11 上部署 ElasticSearch。
ElasticSearch是一个开源的搜索引擎,它可以帮助我们快速地搜索和分析大量数据。

步骤1:安装Docker和Docker-compose

在Debian 11上安装Docker和Docker-compose非常简单。我们可以使用以下命令来安装它们:

  1. sudo apt-get update
  2. sudo apt-get install docker.io docker-compose

步骤2:创建Docker-compose文件

我们需要创建一个Docker-compose文件来定义ElasticSearch容器的配置。在此示例中,我们将使用ElasticSearch 7.14.0版本。我们可以使用以下命令创建一个名为docker-compose.yml的文件:

  1. version: '3'
  2. services:
  3. elasticsearch:
  4. image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
  5. container_name: elasticsearch
  6. environment:
  7. TZ: Asia/Shanghai
  8. ES_JAVA_OPTS: -Xmx512m -Xms512m
  9. discovery.type: single-node
  10. ports:
  11. - 9200:9200
  12. - 9300:9300
  13. volumes:
  14. # 配置
  15. - ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,z
  16. # 数据存储
  17. - ./data:/usr/share/elasticsearch/data:z

在上面的Docker-compose文件中,我们定义了一个名为elasticsearch的服务。我们使用ElasticSearch 8.6.2版本的官方Docker镜像。我们还定义了容器的名称,环境变量和端口映射。我们还映射了 ./data,它将用于持久化ElasticSearch数据。映射 ./config/elasticsearch.yml 用于自定义我们自己的配置

步骤3:启动ElasticSearch容器

我们可以使用以下命令启动ElasticSearch容器:

  1. sudo docker-compose up -d

这将启动ElasticSearch容器并将其作为后台进程运行。我们可以使用以下命令检查容器是否正在运行:

  1. sudo docker ps

步骤4:测试ElasticSearch

我们可以使用以下命令测试ElasticSearch是否正在运行:

  1. curl http://localhost:9200

如果一切正常,您应该会看到类似于以下内容的输出:

  1. {
  2. "name" : "elasticsearch",
  3. "cluster_name" : "docker-cluster",
  4. "cluster_uuid" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  5. "version" : {
  6. "number" : "7.14.0",
  7. "build_flavor" : "default",
  8. "build_type" : "docker",
  9. "build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
  10. "build_date" : "2021-07-29T20:49:32.864135063Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "8.9.0",
  13. "minimum_wire_compatibility_version" : "6.8.0",
  14. "minimum_index_compatibility_version" : "6.0.0-beta1"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

这表明ElasticSearch正在运行并可以通过端口9200进行访问。

开启结巴分词插件

按照插件的仓库 elasticsearch-jieba-plugin 的步骤,下载或自行构建对应版本的插件,并放在 docker-compose.yaml 同目录下。

然后将 docker-compose.yaml 修改成如下:

  1. version: '3'
  2. services:
  3. elasticsearch:
  4. image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
  5. container_name: elasticsearch
  6. environment:
  7. TZ: Asia/Shanghai
  8. ES_JAVA_OPTS: -Xmx512m -Xms512m
  9. discovery.type: single-node
  10. ports:
  11. - 9200:9200
  12. - 9300:9300
  13. volumes:
  14. # 配置
  15. - ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,z
  16. # 数据存储
  17. - ./data:/usr/share/elasticsearch/data:z
  18. # 分词插件
  19. - ./plugins/jieba:/usr/share/elasticsearch/plugins/jieba
  20. - ./plugins/jieba/dic/stopwords.txt:/usr/share/elasticsearch/config/stopwords/stopwords.txt