Blame view

README.md 5.54 KB
670c701f   tangwang   文档完善
1
  # 电商搜索引擎 SaaS
be52af70   tangwang   first commit
2
  
670c701f   tangwang   文档完善
3
  一个针对跨境独立站(店匠 Shoplazza 等)的多租户可配置搜索平台。README 作为项目导航入口,帮助你在不同阶段定位到更详细的文档。
be52af70   tangwang   first commit
4
  
a10a89a3   tangwang   构造测试数据用于测试分类 和 三种...
5
  
acf1349c   tangwang   fake 批量导入数据的脚步 ( ...
6
7
8
9
  ## 项目环境
  source /home/tw/miniconda3/etc/profile.d/conda.sh
  conda activate searchengine
  
a10a89a3   tangwang   构造测试数据用于测试分类 和 三种...
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  ## 测试pipeline
  
  fake数据 生成商品导入数据 提交到店匠的店铺:
  cd /home/tw/SearchEngine && source /home/tw/miniconda3/etc/profile.d/conda.sh && conda activate searchengine && python scripts/csv_to_excel_multi_variant.py --output  with_colors.xlsx 
  
  自动同步到mysql
  mysql到ES:
  
  python scripts/recreate_and_import.py \
      --tenant-id 162 \
      --db-host <mysql_host> \
      --db-database saas \
      --db-username saas \
      --db-password <password> \
      --es-host http://localhost:9200
  
  构造查询:
  参考 @
  
  
670c701f   tangwang   文档完善
30
  ## 核心能力速览
be52af70   tangwang   first commit
31
  
670c701f   tangwang   文档完善
32
33
34
35
36
37
  - **多语言 + 自动翻译**:中文、英文、俄文等语言检测与路由(BGE-M3、DeepL)
  - **语义 + 关键词混排**:BM25、dense vector(BGE-M3/CN-CLIP)融合
  - **布尔与分面**:AND / OR / ANDNOT / RANK、Terms & Range facets
  - **多租户隔离**:共享 `search_products` 索引,通过 `tenant_id` 严格隔离
  - **可配置化**:字段/索引域/排序表达式/查询改写全部配置驱动
  - **脚本化流水线**:Mock/CSV 数据 → MySQL → Elasticsearch → API/前端
be52af70   tangwang   first commit
38
  
670c701f   tangwang   文档完善
39
  ## 快速上手(概览)
be52af70   tangwang   first commit
40
  
670c701f   tangwang   文档完善
41
42
  | 步骤 | 去哪里看 | 摘要 |
  |------|---------|------|
4a677843   tangwang   文档完善
43
44
45
46
47
48
  | 1. 准备环境 | `环境配置说明.md` / `Usage-Guide.md` | Conda/依赖、Elasticsearch、MySQL、必需变量 |
  | 2. 构造测试数据 | `测试数据指南.md` | Tenant1 Mock、Tenant2 CSV、`mock_data.sh` / `ingest.sh` |
  | 3. 启动与验证 | `Usage-Guide.md` | `run.sh` 一键启动、分步脚本、日志与健康检查 |
  | 4. 理解架构 | `系统设计文档.md` | 数据流、配置系统、查询/搜索/索引模块 |
  | 5. 接入搜索 API | `搜索API对接指南.md` / `搜索API速查表.md` | REST 端点、参数、响应、最佳实践 |
  | 6. 查字段定义 | `索引字段说明.md` | `search_products` 映射、字段来源、类型与用途 |
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
49
  
670c701f   tangwang   文档完善
50
  > README 仅保留最常用命令的“索引”。细节以主题文档为准。
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
51
  
670c701f   tangwang   文档完善
52
  ### Runtimes & 命令示例
be52af70   tangwang   first commit
53
54
  
  ```bash
670c701f   tangwang   文档完善
55
56
57
  # 1. 安装依赖与准备服务
  pip install -r requirements.txt                      # 详见 USAGE_GUIDE.md
  docker run -d --name es -p 9200:9200 elasticsearch:8.11.0
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
58
  
670c701f   tangwang   文档完善
59
60
  # 2. 构造测试数据并导入 MySQL
  ./scripts/mock_data.sh                               # 详见 TEST_DATA_GUIDE.md
be52af70   tangwang   first commit
61
  
670c701f   tangwang   文档完善
62
63
64
  # 3. 从 MySQL 注入到 Elasticsearch
  ./scripts/ingest.sh 1 true
  ./scripts/ingest.sh 2 true
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
65
  
670c701f   tangwang   文档完善
66
67
  # 4. 启动服务
  ./run.sh
be52af70   tangwang   first commit
68
  
670c701f   tangwang   文档完善
69
  # 5. 调用文本搜索 API
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
70
  curl -X POST http://localhost:6002/search/ \
be52af70   tangwang   first commit
71
    -H "Content-Type: application/json" \
670c701f   tangwang   文档完善
72
73
    -H "X-Tenant-ID: 1" \
    -d '{"query": "玩具", "size": 10}'
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
74
75
  ```
  
670c701f   tangwang   文档完善
76
  ## 文档地图
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
77
  
670c701f   tangwang   文档完善
78
79
  | 文档 | 内容提要 | 适用场景 |
  |------|----------|----------|
4a677843   tangwang   文档完善
80
81
  | `环境配置说明.md` | 系统要求、Conda/依赖、外部服务账号、常用端口 | 首次部署、环境核对 |
  | `Usage-Guide.md` | 环境准备、服务启动、配置、日志、验证手册 | 日常运维、调试 |
f7d3cf70   tangwang   更新文档
82
  | `基础配置指南.md` | 统一硬编码配置说明、索引结构、查询配置 | 了解系统配置、修改配置 |
4a677843   tangwang   文档完善
83
84
85
  | `测试数据指南.md` | 两个租户的模拟/CSV 数据构造 & MySQL→ES 流程 | 数据准备、联调 |
  | `测试Pipeline说明.md` | 测试流水线、CI 脚本、上下文说明 | 自动化测试、追踪流水线 |
  | `系统设计文档.md` | 架构、配置系统、索引/查询/排序模块细节 | 研发/扩展功能 |
f7d3cf70   tangwang   更新文档
86
  | `索引字段说明v2.md` | `search_products` 字段、类型、来源、嵌套结构 | 新增字段、数据对齐 |
4a677843   tangwang   文档完善
87
88
89
90
  | `搜索API对接指南.md` | REST API(文本/图片/管理)详解、示例、响应格式 | API 使用、测试 |
  | `搜索API速查表.md` | 常用请求体、过滤器、分面速查表 | 支持团队快速查阅 |
  | `Search-API-Examples.md` | Python/JS/cURL 端到端示例 | 客户工程、SDK 参考 |
  | `环境配置说明.md` + `.env` 模板 | 运行依赖账号、端口、密钥对照表 | 交付 & 运维 |
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
91
  
670c701f   tangwang   文档完善
92
  更多补充材料:
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
93
  
4a677843   tangwang   文档完善
94
  - `测试数据指南.md`:包含完整工作流脚本示例
670c701f   tangwang   文档完善
95
96
  - `商品数据源入ES配置规范.md`:数据源映射约定
  - `MULTILANG_FEATURE.md`:多语言处理细节
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
97
  
670c701f   tangwang   文档完善
98
  ## 关键工作流指引
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
99
  
670c701f   tangwang   文档完善
100
101
102
  - **数据构建 → MySQL → Elasticsearch**  
    - `scripts/mock_data.sh`:Tenant1 Mock + Tenant2 CSV 一条龙  
    - `scripts/ingest.sh <tenant_id> [recreate]`:驱动 `indexer/` 模块写入 `search_products`
4a677843   tangwang   文档完善
103
    - 详解:`测试数据指南.md`
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
104
  
670c701f   tangwang   文档完善
105
106
  - **搜索服务 & API**  
    - `api/`(FastAPI)承载 REST API,`search/` + `query/` 负责查询解析与下发  
4a677843   tangwang   文档完善
107
108
    - API、分页、过滤、Facet、KNN 等:`搜索API对接指南.md`
    - 对接案例、示例与错误码:`搜索API对接指南.md`、`Search-API-Examples.md`
be52af70   tangwang   first commit
109
  
f7d3cf70   tangwang   更新文档
110
111
112
113
114
  - **统一配置**  
    - 所有租户共享统一的索引结构和查询配置(硬编码)  
    - 索引 mapping: `mappings/search_products.json`  
    - 查询配置: `search/query_config.py`  
    - 详解:`基础配置指南.md`、`索引字段说明v2.md`
a5a3856d   tangwang   店匠体系数据的搜索:mock da...
115
  
670c701f   tangwang   文档完善
116
  ## 仓库结构(概览)
be52af70   tangwang   first commit
117
  
be52af70   tangwang   first commit
118
  ```
670c701f   tangwang   文档完善
119
120
121
122
123
124
125
126
  api/            FastAPI 服务与路由
  config/         字段/索引/查询配置体系
  indexer/        MySQL → ES 管道(mapping / transformer / bulk)
  query/          查询解析、改写、翻译、embedding
  search/         多语言构建、布尔解析、排序引擎
  scripts/        数据/服务脚本(mock_data, ingest, run 等)
  frontend/       简易调试页面
  docs/           运营及中文资料
be52af70   tangwang   first commit
127
  ```