返回 Bug 清单
BUG-0395project-13高已修复backend-logic

向量重导只从 metadata 取值,而元数据里没有 content 键,导致重导是全量空操作却返回全绿

发现:2026-10-03验证:2026-10-09置信度:90%

症状

调用重导接口返回 200 且无错误,但向量库里内容毫无变化;用户以为重导完成,实际一条都没更新。

根因

VectorReimportService 从向量库行的 metadata JSON 里取 subject/chapter/title/content 四字段,但写入端从未把 content 放进 metadata(content 存在列里)。于是每行都因「content 为空」被跳过,接口返回 success=0/skipped=1248 —— 一个「成功执行但什么都没做」的空操作。

修复方案

改为 firstNonBlank(列值, metadata值) 的取数顺序(列优先),因为列才是权威来源;同时补一条断言:重导后行数与向量数必须与重导前一致(幂等),且至少处理行数 > 0,否则视为失败。

错误签名

重导结果 success=0 skipped=1248;metadata 键统计 含content: 0/1248

技术信息

来源项目

project-13

涉及文件

backend/src/main/java/com/project-13/service/ai/VectorReimportService.java

标签

空操作, 数据源选错, 幂等, 静默成功, project-13...