be52af70
tangwang
first commit
|
1
|
|
a7920e17
tangwang
项目名称和部署路径修改
|
2
|
## 1. 系统要求
|
670c701f
tangwang
文档完善
|
3
|
|
a7920e17
tangwang
项目名称和部署路径修改
|
4
5
6
7
8
9
10
|
- **操作系统**:Linux(推荐 Ubuntu 18.04+)
- **Conda**:Miniconda3 或 Anaconda(用于 Python 环境隔离)
- **Python**:3.10(由 Conda 环境提供)
- **内存**:建议 8GB+(含模型与 ES)
- **磁盘**:10GB+(含模型与索引)
---
|
670c701f
tangwang
文档完善
|
11
12
13
|
## 2. Python 运行环境
|
484adbfe
tangwang
adapt ubuntu; con...
|
14
15
16
17
18
19
20
21
22
23
24
25
26
|
本项目历史上使用 Conda 管理环境;目前推荐使用 **venv**(更轻量、对 CI/容器更友好)。项目根目录下的 `activate.sh` 已升级为 **优先激活 `.venv`,并兼容 Conda 回退**,且会自动加载当前目录下的 `.env`(忽略注释与空行)。
### 2.1 venv(推荐)
首次创建 venv:
```bash
cd /data/saas-search
./scripts/create_venv.sh
source activate.sh
```
如需运行本地 embedding / 图像编码服务(torch/transformers 等依赖较重):
|
a7920e17
tangwang
项目名称和部署路径修改
|
27
|
|
670c701f
tangwang
文档完善
|
28
|
```bash
|
a7920e17
tangwang
项目名称和部署路径修改
|
29
|
cd /data/saas-search
|
484adbfe
tangwang
adapt ubuntu; con...
|
30
|
INSTALL_ML=1 ./scripts/create_venv.sh
|
a7920e17
tangwang
项目名称和部署路径修改
|
31
32
|
source activate.sh
```
|
2c9fad19
tangwang
撰写接口文档
|
33
|
|
484adbfe
tangwang
adapt ubuntu; con...
|
34
35
36
37
38
39
40
41
42
43
|
日常使用:
```bash
cd /data/saas-search
source activate.sh
```
### 2.2 Conda(兼容旧流程)
`activate.sh` 会在未发现 `.venv` 时回退激活 Conda 环境 `searchengine`。若在新机器上部署,请先设置本机 Conda 路径再执行:
|
a7920e17
tangwang
项目名称和部署路径修改
|
44
45
46
47
48
|
```bash
# 你的 conda 在 ~/anaconda3/bin/conda,则 CONDA_ROOT=~/anaconda3
export CONDA_ROOT=$HOME/anaconda3 # 或你的 Conda 安装路径(如 /home/ubuntu/anaconda3)
source activate.sh
|
670c701f
tangwang
文档完善
|
49
50
|
```
|
484adbfe
tangwang
adapt ubuntu; con...
|
51
|
**新机器首次部署(创建 Conda 环境)**:若本机尚未创建 `searchengine` 环境,任选其一:
|
a7920e17
tangwang
项目名称和部署路径修改
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
- **方式 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=...`)。
|
670c701f
tangwang
文档完善
|
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
---
## 3. 外部服务与端口
| 服务 | 默认地址 | 说明 |
|------|----------|------|
| Elasticsearch | `http://localhost:9200` | 可通过 Docker 单节点启动 |
| MySQL | `120.79.247.228:3316` | 存放店匠 SPU/SKU 数据 |
| Redis(可选) | `localhost:6479` | Embedding/翻译缓存 |
示例:使用 Docker 启动 Elasticsearch
```bash
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`,并根据环境替换敏感信息:
```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
|
484adbfe
tangwang
adapt ubuntu; con...
|
107
|
ES_USERNAME=saas
|
670c701f
tangwang
文档完善
|
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
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` |
|
484adbfe
tangwang
adapt ubuntu; con...
|
130
|
| **Elasticsearch** | host `http://localhost:9200`, user `saas`, password `4hOaLaf41y2VuI8y` |
|
670c701f
tangwang
文档完善
|
131
132
133
134
135
136
137
138
139
|
| **Redis(可选)** | host `localhost`, port `6479`, password `BMfv5aI31kgHWtlx` |
| **DeepL** | `c9293ab4-ad25-479b-919f-ab4e63b429ed` |
> 所有凭证仅用于本地/测试环境,生产环境需替换并妥善保管。
---
## 6. 店匠数据源说明
|
a7920e17
tangwang
项目名称和部署路径修改
|
140
|
saas-search 以 MySQL 中的店匠标准表为权威数据源:
|
670c701f
tangwang
文档完善
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
- `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. 相关脚本
|
a7920e17
tangwang
项目名称和部署路径修改
|
171
|
- **`activate.sh`**(项目根目录):激活 Conda 环境 `searchengine` 并加载 `.env`,**日常开发/部署以本脚本为准**。
|
670c701f
tangwang
文档完善
|
172
173
|
- `scripts/mock_data.sh`:一次性生成 Tenant1 Mock + Tenant2 CSV 数据并导入 MySQL
- `scripts/ingest.sh <tenant_id> [recreate]`:从 MySQL 写入 Elasticsearch
|
a7920e17
tangwang
项目名称和部署路径修改
|
174
175
176
|
- `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` 或部署说明。
|
670c701f
tangwang
文档完善
|
177
|
|
a7920e17
tangwang
项目名称和部署路径修改
|
178
|
更多脚本参数、日志与验证命令参见 `Usage-Guide.md` 与 `测试数据指南.md`。
|
2c9fad19
tangwang
撰写接口文档
|
|
|
be52af70
tangwang
first commit
|
|
|