Name Last Update
.cursor/plans Loading commit data...
.github/workflows Loading commit data...
api Loading commit data...
config Loading commit data...
context Loading commit data...
data/customer1 Loading commit data...
docs Loading commit data...
embeddings Loading commit data...
frontend Loading commit data...
indexer Loading commit data...
mappings Loading commit data...
query Loading commit data...
scripts Loading commit data...
search Loading commit data...
tests Loading commit data...
utils Loading commit data...
.env Loading commit data...
.env.example Loading commit data...
.gitignore Loading commit data...
CLAUDE.md Loading commit data...
README.md Loading commit data...
activate.sh Loading commit data...
environment.yml Loading commit data...
example_usage.py Loading commit data...
main.py Loading commit data...
requirements.txt Loading commit data...
requirements_server.txt Loading commit data...
restart.sh Loading commit data...
run.sh Loading commit data...
setup.sh Loading commit data...
test_data.sql Loading commit data...
test_data_tenant1.sql Loading commit data...
test_multi_select_facet.py Loading commit data...

README.md

电商搜索引擎 SaaS

一个针对跨境独立站(店匠 Shoplazza 等)的多租户可配置搜索平台。README 作为项目导航入口,帮助你在不同阶段定位到更详细的文档。

项目环境

source /home/tw/miniconda3/etc/profile.d/conda.sh conda activate searchengine source .env

测试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 \ --db-database saas \ --db-username saas \ --db-password \ --es-host http://localhost:9200

构造查询: 参考 @常用查询 - ES.md

核心能力速览

  • 多语言 + 自动翻译:中文、英文、俄文等语言检测与路由(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/前端

快速上手(概览)

步骤 去哪里看 摘要
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 映射、字段来源、类型与用途

README 仅保留最常用命令的“索引”。细节以主题文档为准。

Runtimes & 命令示例

# 1. 安装依赖与准备服务
pip install -r requirements.txt                      # 详见 USAGE_GUIDE.md
docker run -d --name es -p 9200:9200 elasticsearch:8.11.0

# 2. 构造测试数据并导入 MySQL
./scripts/mock_data.sh                               # 详见 TEST_DATA_GUIDE.md

# 3. 从 MySQL 注入到 Elasticsearch
./scripts/ingest.sh 1 true
./scripts/ingest.sh 2 true

# 4. 启动服务
./run.sh

# 5. 调用文本搜索 API
curl -X POST http://localhost:6002/search/ \
  -H "Content-Type: application/json" \
  -H "X-Tenant-ID: 1" \
  -d '{"query": "玩具", "size": 10}'

文档地图

文档 内容提要 适用场景
环境配置说明.md 系统要求、Conda/依赖、外部服务账号、常用端口 首次部署、环境核对
Usage-Guide.md 环境准备、服务启动、配置、日志、验证手册 日常运维、调试
基础配置指南.md 统一硬编码配置说明、索引结构、查询配置 了解系统配置、修改配置
测试数据指南.md 两个租户的模拟/CSV 数据构造 & MySQL→ES 流程 数据准备、联调
测试Pipeline说明.md 测试流水线、CI 脚本、上下文说明 自动化测试、追踪流水线
系统设计文档.md 架构、配置系统、索引/查询/排序模块细节 研发/扩展功能
索引字段说明v2.md search_products 字段、类型、来源、嵌套结构 新增字段、数据对齐
搜索API对接指南.md REST API(文本/图片/管理)详解、示例、响应格式 API 使用、测试
搜索API速查表.md 常用请求体、过滤器、分面速查表 支持团队快速查阅
Search-API-Examples.md Python/JS/cURL 端到端示例 客户工程、SDK 参考
环境配置说明.md + .env 模板 运行依赖账号、端口、密钥对照表 交付 & 运维

更多补充材料:

  • 测试数据指南.md:包含完整工作流脚本示例
  • 商品数据源入ES配置规范.md:数据源映射约定
  • MULTILANG_FEATURE.md:多语言处理细节

关键工作流指引

  • 数据构建 → MySQL → Elasticsearch

    • scripts/mock_data.sh:Tenant1 Mock + Tenant2 CSV 一条龙
    • scripts/ingest.sh <tenant_id> [recreate]:驱动 indexer/ 模块写入 search_products
    • 详解:测试数据指南.md
  • 搜索服务 & API

    • api/(FastAPI)承载 REST API,search/ + query/ 负责查询解析与下发
    • API、分页、过滤、Facet、KNN 等:搜索API对接指南.md
    • 对接案例、示例与错误码:搜索API对接指南.mdSearch-API-Examples.md
  • 统一配置

    • 所有租户共享统一的索引结构和查询配置(硬编码)
    • 索引 mapping: mappings/search_products.json
    • 查询配置: search/query_config.py
    • 详解:基础配置指南.md索引字段说明v2.md

仓库结构(概览)

api/            FastAPI 服务与路由
config/         字段/索引/查询配置体系
indexer/        MySQL → ES 管道(mapping / transformer / bulk)
query/          查询解析、改写、翻译、embedding
search/         多语言构建、布尔解析、排序引擎
scripts/        数据/服务脚本(mock_data, ingest, run 等)
frontend/       简易调试页面
docs/           运营及中文资料