Search-Goods/.trae/documents/系统改进计划:搜索、性能、UX 与部署增强.md

2.5 KiB
Raw Permalink Blame History

搜索与数据模型

  • 引入 FTS5 全文索引:为 namebarcode、(可选)拼音码 建立虚拟表,支持高性能模糊匹配与相关性排序
  • 扩展导入:将 Excel 的 拼音码 一并入库;若缺失可后续考虑使用库生成(规划阶段不变更依赖)
  • 排序策略:前缀匹配 > 后缀匹配 > 任意包含;同分时按匹配长度和最近导入时间排序
  • 分页与上限:为 /products 增加 pagelimit,默认 limit=20page=1

API 与后端性能

  • WAL 模式:启用 SQLite PRAGMA journal_mode=WAL 与适度 synchronous=NORMAL 提升并发读性能
  • 统一查询端点:保留 /products?q=(已支持数字部分匹配),增加 sort/order 参数
  • 健壮性:为 /import 增加上传类型/大小校验与导入报告(插入/更新/跳过及示例错误行)

前端 UX

  • 结果高亮:在卡片中高亮匹配片段(名称与条码)
  • 分页与空态:在列表底部提供分页控件;无结果时引导用户切换到“导入”或修改关键词
  • 条码复制与扫码:卡片“复制条码”按钮;可选增加移动端扫码(后续集成 ZXing

安全与配置

  • /import 简单令牌:通过环境变量 IMPORT_TOKEN 校验;面板或 Docker Compose 注入
  • CORS 与限流:允许必要来源;基础限流防滥用(规划阶段暂不改动)

部署与维护

  • Docker保留端口 57777;增加 .env 支持 PORTIMPORT_TOKENWAL_OPEN=1
  • 备份与导出:每日备份 data/products.db;提供 /export 导出 CSV权限受控

监控与测试

  • 日志:结构化日志(导入错误行、查询参数与耗时)
  • 测试:导入与搜索单测(前后缀、包含);接口集成测试覆盖分页与排序

验收标准

  • 搜索在 510k 条数据下 100ms300ms 返回
  • 支持关键词与数字部分匹配,分页与排序可用
  • /import 需令牌;导入报告清晰,错误不影响其他行
  • 前端在手机/桌面下可用;匹配高亮明显;复制条码便捷

实施清单

  1. 数据层:开启 WAL新增 FTS5 虚拟表与同步触发器
  2. 导入模块:扩展列映射、报告输出、基础校验
  3. API分页/排序参数;统一查询逻辑对接 FTS5无破坏旧参数
  4. 前端:高亮、分页控件、复制条码按钮(扫码为可选后续)
  5. 安全:IMPORT_TOKEN 校验与 .env 注入;文档与面板配置说明
  6. 部署Compose 加载 .env;备份脚本与导出接口
  7. 测试与日志:单测/集成测试与结构化日志