- 主题 作者
- #1
很长时间没写文章了,这几天我安装了最新的xf2.3b2,因为2.3版本对系统有了更高的要求,我升级了mysql、php,但因我的虚拟机配置一般,打算使用docker 配置elasticsearch 7.17.18,供xf enhanced search 使用。
下面是我使用docker 安装 elasticsearch 7.17.18(设置服务访问密码) 并安装smartcn分词器插件。同时设置仅限宿主机访问使用容器用的elasticsearch服务。
首先宿主机bt面板中安装docker。然后进行以下操作
如果返回的信息中包含X-Pack的相关信息,说明X-Pack已经成功启用。
若要卸载,先停止elasticsearch节点,然后运行:
下面是我使用docker 安装 elasticsearch 7.17.18(设置服务访问密码) 并安装smartcn分词器插件。同时设置仅限宿主机访问使用容器用的elasticsearch服务。
首先宿主机bt面板中安装docker。然后进行以下操作
1、拉去镜像
代码:
docker pull docker.io/elasticsearch:7.17.18
2、查看镜像
代码:
docker images
3. 创建挂载目录
在宿主机上创建2个目录,分别用于存放配置文件、数据。这样可以保证容器的可移植性和数据的持久化。
代码:
sudo mkdir -p /opt/elasticsearch/config
sudo mkdir -p /opt/elasticsearch/data
4. 赋予权限
为了确保Elasticsearch容器能够正常读写挂载的目录,需要赋予相应的权限。
代码:
sudo chmod -R 777 /opt/elasticsearch/
5. 编写
在/opt/elasticsearch/config目录中创建elasticsearch.yml文件,并配置Elasticsearch的相关参数。例如,设置绑定地址和节点名称:
代码:
network.host: 127.0.0.1
discovery.type: single-node
cluster.name: 根据自己情况填写
node.name: 根据自己情况填写
6、运行容器启动 Elasticsearch
代码:
docker run -d --name elasticsearch --network=host -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" -e "xpack.security.enabled=true" -e "ELASTIC_PASSWORD=根据自己情况设置密码" -e "discovery.type=single-node" -v /usr/share/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/share/elasticsearch/data:/usr/share/elasticsearch/data d9a5dba942dc
6.1、参数解释:
代码:
-d:后台启动
--name:容器名称
--network=host: 使用宿主机的网络,这样容器将使用宿主机的IP地址和端口,而不是默认的Docker虚拟网络。
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g":设置es使用内存
-e "xpack.security.enabled=true": 启用X-Pack安全特性。
-e "ELASTIC_PASSWORD=根据自己情况设置密码": 设置elastic用户的密码,这是Elasticsearch的默认超级用户。
-v:挂在目录文件
discovery.type=single-node:单机运行
d9a5dba942dc:镜像id
6.2、使用 docker ps 命令查看容器状态
6.3验证X-Pack是否启用
启动容器后,你可以通过访问Elasticsearch的API来验证X-Pack是否已启用。例如,使用curl命令:
代码:
curl -u elastic:根据自己情况设置密码 http://localhost:9200/_xpack
如果返回的信息中包含X-Pack的相关信息,说明X-Pack已经成功启用。
7、安装smartcn分词器
进入容器终端
代码:
./bin/elasticsearch-plugin install analysis-smartcn
若要卸载,先停止elasticsearch节点,然后运行:
代码:
./bin/elasticsearch-plugin remove analysis-smartcn
7.2、安装 smartcn分词器后重启 Elasticsearch
代码:
docker restart elasticsearch
7.3、测试Smartcn分词器
代码:
curl -X POST -u elastic:根据自己情况设置密码 "http://localhost:9200/_analyze" -H 'Content-Type: application/json' -d'
{
"analyzer": "smartcn",
"text": "我是中国人"
}'
最后编辑: