环境配置说明.md 4.8 KB

1. 系统要求

  • 操作系统:Linux(推荐 Ubuntu 18.04+)
  • Conda:Miniconda3 或 Anaconda(用于 Python 环境隔离)
  • Python:3.10(由 Conda 环境提供)
  • 内存:建议 8GB+(含模型与 ES)
  • 磁盘:10GB+(含模型与索引)

2. Python 运行环境

推荐方式(与项目脚本一致):使用项目根目录下的 activate.sh 激活环境,会自动加载当前目录下的 .env(忽略注释与空行):

cd /data/saas-search
source activate.sh

activate.sh 会激活 Conda 环境 searchengine。若在新机器上部署,请先设置本机 Conda 路径再执行:

# 你的 conda 在 ~/anaconda3/bin/conda,则 CONDA_ROOT=~/anaconda3
export CONDA_ROOT=$HOME/anaconda3   # 或你的 Conda 安装路径(如 /home/ubuntu/anaconda3)
source activate.sh

新机器首次部署(创建环境):若本机尚未创建 searchengine 环境,任选其一:

  • 方式 A(推荐,与 environment.yml 一致)bash cd /data/saas-search export CONDA_ROOT=$HOME/anaconda3 # 或你的 Conda 安装路径 conda env create -f environment.yml source activate.sh
  • 方式 B(仅 pip)bash conda create -n searchengine python=3.10 -y conda activate searchengine cd /data/saas-search pip install -r requirements.txt

之后日常使用执行 source activate.sh 即可(如需可先 export CONDA_ROOT=...)。


3. 外部服务与端口

服务 默认地址 说明
Elasticsearch http://localhost:9200 可通过 Docker 单节点启动
MySQL 120.79.247.228:3316 存放店匠 SPU/SKU 数据
Redis(可选) localhost:6479 Embedding/翻译缓存

示例:使用 Docker 启动 Elasticsearch

docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
  elasticsearch:8.11.0

4. 环境变量与 .env 模板

在项目根目录创建 .env,并根据环境替换敏感信息:

# MySQL
DB_HOST=120.79.247.228
DB_PORT=3316
DB_DATABASE=saas
DB_USERNAME=saas
DB_PASSWORD=P89cZHS5d7dFyc9R

# Elasticsearch
ES_HOST=http://localhost:9200
ES_USERNAME=essa
ES_PASSWORD=4hOaLaf41y2VuI8y

# Redis(可选)
REDIS_HOST=localhost
REDIS_PORT=6479
REDIS_PASSWORD=BMfv5aI31kgHWtlx

# DeepL 翻译
DEEPL_AUTH_KEY=c9293ab4-ad25-479b-919f-ab4e63b429ed

# API
API_HOST=0.0.0.0
API_PORT=6002

5. 服务凭证速查

项目
MySQL host 120.79.247.228, port 3316, user saas, password P89cZHS5d7dFyc9R
Elasticsearch host http://localhost:9200, user essa, password 4hOaLaf41y2VuI8y
Redis(可选) host localhost, port 6479, password BMfv5aI31kgHWtlx
DeepL c9293ab4-ad25-479b-919f-ab4e63b429ed

所有凭证仅用于本地/测试环境,生产环境需替换并妥善保管。


6. 店匠数据源说明

saas-search 以 MySQL 中的店匠标准表为权威数据源:

  • shoplazza_product_spu:SPU 商品主表
  • shoplazza_product_sku:SKU 变体表

shoplazza_product_sku 字段节选

字段 类型 描述
id bigint(20) SKU 主键
spu_id bigint(20) 对应 SPU
shop_id bigint(20) 店铺 ID
shoplazza_product_id varchar(64) 店匠商品 ID
title varchar(500) 变体标题
sku varchar(100) SKU 编码
price decimal(10,2) 售价
compare_at_price decimal(10,2) 原价
option1/2/3 varchar(255) 颜色/尺码等选项
inventory_quantity int(11) 库存
image_src varchar(500) 图片
tenant_id bigint(20) 租户
create_time datetime 创建时间
update_time datetime 更新时间
deleted bit(1) 逻辑删除标记

完整字段、索引映射与 ES 对应关系详见 INDEX_FIELDS_DOCUMENTATION.md


7. 相关脚本

  • activate.sh(项目根目录):激活 Conda 环境 searchengine 并加载 .env日常开发/部署以本脚本为准
  • scripts/mock_data.sh:一次性生成 Tenant1 Mock + Tenant2 CSV 数据并导入 MySQL
  • scripts/ingest.sh <tenant_id> [recreate]:从 MySQL 写入 Elasticsearch
  • run.sh / restart.sh:服务启动/重启(内部会调用 start_backend.sh 等,同样使用 CONDA_ROOT

新机器部署:若 Conda 未安装在默认路径(如 /home/tw/miniconda3),请在执行上述脚本前设置 CONDA_ROOT。例如你的 conda 是 ~/anaconda3/bin/conda(即 /home/ubuntu/anaconda3/bin/conda),则设置:export CONDA_ROOT=$HOME/anaconda3。可将该行写入 ~/.bashrc 或部署说明。

更多脚本参数、日志与验证命令参见 Usage-Guide.md测试数据指南.md