Docker 部署 Elasticsearch

魔豆文库专业版支持全文搜索,内置了全文搜索引擎的同时并支持使用Elasticsearch作为全文搜索引擎。目前支持ElasticSearch 7、8 的版本。

安装docker

安装elasticsearch

注意:

  1. ES8和ES7,二选一即可。
  2. 不同版本的安装,以下仅为示例

安装elasticsearch 8

1. 安装es8

  1. docker run --name es8 --restart=always -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v ./my-search:/usr/share/elasticsearch/data -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -d elasticsearch:8.11.0

注意:如果是Linux下报运行权限问题,在上述命令中加上sudo

上述运行命令,将 ES 索引数据挂载到了当前 my-search 目录,并暴露了9200和9300端口,同时设置了ElasticSearch JVM 内存相关环境变量参数XmsXmx大小为512M,该参数可根据个人服务器硬件情况调整大小,如调整为1GB,则 -e "ES_JAVA_OPTS=-Xms1g -Xmx1g"

以上命令仅供参考,相应暴露端口和挂载目录以及JVM内存,可自行配置。

2. 安装ik分词

需要安装IK中文分词,以提供更好的中文搜索体验。

进入docker

  1. docker exec -it es8 bash

安装分词

  1. elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.11.0

安装完成之后,重启容器

  1. docker restart es8

3. 设置密码

ES8开始必须设置密码,ES7倒是没遇到。

进入docker

  1. docker exec -it es8 bash

自动设置密码

  1. bin/elasticsearch-setup-passwords auto

控制台输出密码(注意:这里只是示例)

  1. Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
  2. The passwords will be randomly generated and printed to the console.
  3. Please confirm that you would like to continue [y/N]y
  4. Changed password for user apm_system
  5. PASSWORD apm_system = 7P4jXIXqLOTDLOPUxdmL
  6. Changed password for user kibana_system
  7. PASSWORD kibana_system = daEWIojebVE7eq50CUod
  8. Changed password for user kibana
  9. PASSWORD kibana = daEWIojebVE7eq50CUod
  10. Changed password for user logstash_system
  11. PASSWORD logstash_system = r1JMm1agjHaikC0KQmnk
  12. Changed password for user beats_system
  13. PASSWORD beats_system = EYmQDyg9w1TViNCt6TfW
  14. Changed password for user remote_monitoring_user
  15. PASSWORD remote_monitoring_user = DoVznhNRI14IlIjoaTlo
  16. Changed password for user elastic
  17. PASSWORD elastic = OuPQsfBNqaFhrctwriUO

4. 访问验证

注意: es8 需要通过 HTTPS 来进行访问,因此配置的时候,需要注意!!!!!

浏览器访问: https://localhost:9200

然后输入上述的账户密码:

  1. 账户:elastic
  2. 密码:OuPQsfBNqaFhrctwriUO

输出如下信息,即表示安装成功:

  1. {
  2. "name" : "4f022ab0caed",
  3. "cluster_name" : "docker-cluster",
  4. "cluster_uuid" : "hrDWt75ASmOostY1VlsVbQ",
  5. "version" : {
  6. "number" : "8.11.0",
  7. "build_flavor" : "default",
  8. "build_type" : "docker",
  9. "build_hash" : "d9ec3fa628c7b0ba3d25692e277ba26814820b20",
  10. "build_date" : "2023-11-04T10:04:57.184859352Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "9.8.0",
  13. "minimum_wire_compatibility_version" : "7.17.0",
  14. "minimum_index_compatibility_version" : "7.0.0"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

安装elasticsearch 7

1. 安装es7

  1. docker run --name es7 --restart=always -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v ./my-search:/usr/share/elasticsearch/data -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.17.14

注意:如果是Linux下报运行权限问题,在上述命令中加上sudo

上述运行命令,将 ES 索引数据挂载到了当前 my-search 目录,并暴露了9200和9300端口,同时设置了ElasticSearch JVM 内存相关环境变量参数XmsXmx大小为512M,该参数可根据个人服务器硬件情况调整大小,如调整为1GB,则 -e "ES_JAVA_OPTS=-Xms1g -Xmx1g"

以上命令仅供参考,相应暴露端口和挂载目录以及JVM内存,可自行配置。

2. 安装ik分词

进入docker

  1. docker exec -it es7 bash

安装分词

  1. elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.17.14

安装完成之后,重启容器

  1. docker restart es7

魔豆文库后台配置全文搜索

进入魔豆文库管理后台 -> 系统设置 -> 全文搜索配置,选择Elasticsearch全文搜索,然后按照提示进行配置,配置完成之后,请手动更新一下全文索引。

Docker 部署 Elasticsearch - 图1