Tigshop 安装部署教程 for PHP
ES搜索配置教程(待发布)
1. 环境要求
- Elasticsearch8.x(建议 8.x)
- PHP 8.2+,Composer 已安装
- IK 分词器
- 安装参考 ES 插件
analysis-ik
,安装后需重启 ES
- 安装参考 ES 插件
2. 配置 ES 连接
在项目根目录 .env
添加(按需修改不填则已有以下默认参数):
# ES 连接参数
ES_HOST=127.0.0.1
ES_PORT=9200
ES_USERNAME=
ES_PASSWORD=
ES_SSL_VERIFY=false
ES_TIMEOUT=30
ES_RETRIES=3
3. 启用 ES 搜索
- 系统通过配置项
selectSeachType
控制搜索通道(es 或 mysql)。
4. 初始化索引与导入数据
- 在商品管理 - 初始化ES搜索数据
- 返回:
- 立即返回“已触发ES全量初始化任务”,由队列后台处理
- 返回:
注意:
- 生产环境需常驻队列消费者,确保同步任务执行
- 常见启动方式(根据你们现有队列部署规范调整):
- 前台运行(调试):
php think queue:listen | cat
- 守护进程:建议使用 Supervisor 或系统服务托管
- 前台运行(调试):
5. 运行时数据一致性
以下操作会自动投递 ES 同步任务(无需手工触发):
- 新增商品
- 编辑商品
- 上下架商品
- 移入回收站/还原商品
要求队列消费者常驻运行,保证异步同步执行。
6. 常见问题与排查
- 接口
setting/config/checkEsConnection
失败:- 核对
.env
的 ES 主机、端口、账号、密码是否正确 - 检查网络连通性与防火墙
- 如果启用 SSL,确认
ES_SSL_VERIFY
和证书配置
- 核对
- 中文检索效果差:
- 安装 IK 分词器
analysis-ik
,重启 ES - 确保初始化任务已执行,或重新触发初始化数据
- 安装 IK 分词器
- 全量初始化未生效:
- 确认队列消费者运行中
- 查看队列失败任务(若使用 Redis/Database 队列)
- 切回 MySQL 搜索:
selectSeachType
设置为mysql
7. 快速检查清单
- 已安装
elasticsearch/elasticsearch
依赖 -
.env
正确配置 ES 连接参数 - 搜索配置已改为es搜索
- 启动队列消费者
- 触发全量导入
- 前台搜索可用,且命中结果与排序符合预期
大纲
1. 环境要求
2. 配置 ES 连接
3. 启用 ES 搜索
4. 初始化索引与导入数据
5. 运行时数据一致性
6. 常见问题与排查
7. 快速检查清单