全量重索引迁移指南

本章节介绍如何将向量库从旧结构迁移到新版高并发 Ingest 流程,归纳常见动因、操作步骤、性能观测与标准作业流程(SOP),为例行或突发重建提供参考。迁移过程涉及多种场景和技术细节,需结合实际需求进行评估。

迁移动因

迁移通常由以下几类原因驱动,具体分类及说明如下:

分类说明
模型升级嵌入模型切换(Gemini → Qwen)导致向量语义空间不兼容
维度变更EMBED_DIM 调整(768 → 1024)需要重新写入一致维度
分块策略优化chunkText 改版(标题先切 + 标点再切)影响上下文粒度
元数据模式变更新增 language、url 归一化策略,需要一致性回填
数据清理积累无用 / 旧路径 / draft 遗留向量需清除

迁移前需充分了解上述动因,以便制定合适的迁移方案。

环境准备

在正式迁移前,需完成环境和权限的准备工作。以下是主要的检查项:

  • 确认 Cloudflare Vectorize 索引名称及维度与 wrangler.toml 中 EMBED_DIM 一致
  • 验证 ADMIN_TOKEN 权限(/admin/clear-all、/admin/upsert)
  • 测试嵌入 API,确保返回合法维度
  • 配置本地网络代理(如需),减少失败重试

确保所有准备项均已通过,有助于后续流程顺利进行。

操作流程

迁移操作分为若干步骤,以下表格总结了每一步的动作、命令及产出:

步骤动作命令 / 行为产出
1统计现状(可选)采样查询 topK基线样本
2清空向量库DELETE /admin/clear-all计数日志 totalDeleted
3启动 ingestnpm run ingest (fast-ingest)并发批量写入
4监控日志观察 chunks/sec & 错误率性能与失败样本
5验证抽查/admin/test-query & /debug匹配质量确认
6记录指标耗时、总向量、失败重试数迁移过程记录
7上线切换前端指向更新后 Worker生效

每一步都需关注产出结果,及时调整策略以保证迁移质量。

清空阶段说明

在清空阶段,需通过 Worker 的 DELETE /admin/clear-all 接口批量删除旧数据。该操作会循环模拟查询批次(dummy vector topK=100)并调用 deleteByIds,直到批量返回不足为止。输出的 totalDeleted 可用于确认旧数据体量。

注意:Vectorize 暂无“一键 truncate”,批量删除需控制超时,必要时分多次执行,避免因超时导致删除不完整。

Ingest 高并发阶段

高并发 ingest 阶段涉及多个关键参数,合理配置可提升写入效率。以下是主要参数及其作用:

MAX_CONCURRENT_FILES   // 文件读取 + 解析并发
MAX_CONCURRENT_EMBEDDINGS // API 调用并发
EMBEDDING_BATCH_SIZE   // 单请求文本数量(Qwen=10, Gemini=1)
UPLOAD_BATCH_SIZE      // 聚合后单次 upsert 数量(示例 300)

调度逻辑为:文件按批启动 → 分块 → 分批嵌入 → 聚合到阈值即触发 upsert。失败的 upload 批会回退到队列头部等待重试,确保数据最终一致。

小结

本章总结了向量库重索引迁移的动因、准备、操作流程及关键参数。通过规范化清空、批量高并发 ingest、性能监控与指标记录,可有效提升迁移效率并降低风险。建议迁移前充分验证环境与权限,迁移过程中关注性能与错误率,迁移后及时抽查匹配质量,确保新结构稳定上线。

文章导航

独立页面

这是书籍中的独立页面。

书籍首页

评论区