返回更新记录
v1.1.1

standalone 与中文检索修复(评测驱动) (v1.1.1)

修复 standalone 创建知识库必 500、向量检索不可用、FTS 对中文疑问句零召回三个缺陷;新增单路禁用的通道诊断语义与离线检索评测 harness。

检索修复SQLite中文分词

v1.1.1 是一轮被评测逼出来的修复版本。这个周期我们给检索建了量化评测体系(建评测的完整故事),评测第一次冒烟就抓出两个 standalone 缺陷,第一轮真实基线又暴露了中文问句的全文检索问题。三个修复都在这一版落地。

修复 standalone 创建知识库必 500

standalone(SQLite 单机)模式从零创建知识库必定返回 500:一张表的前向外键缺少延迟检查声明,建库事务因此在 SQLite 上直接失败。按文档从零拉起实例的用户必踩——评测 harness 恰好扮演了这样一个「新用户」,第一个撞上的就是它。

修复 standalone 向量检索不可用

向量检索在 standalone 生产二进制里从未生效:vec 向量扩展没有链接进构建产物,调用即失败。问题出在构建链接,不是逻辑代码,此前没有测试覆盖「生产二进制 + SQLite + 向量检索」这条组合路径,所以一直没被发现。

修复中文疑问句全文检索零召回

「埃及有哪些民族?」这类日常问句,会让全文检索一条都查不出来:分词器把问句切成 token 后,FTS 按 AND 语义匹配,疑问词与标点在正文中永不齐备,整条查询恒为空集;混合检索随之退化为纯向量单路,且不报错、不告警。

修复在查询侧过滤标点与虚词,SQLite FTS5 与 PostgreSQL 双方言同时生效。修复后 FTS 召回从 0 恢复,混合检索也第一次严格优于纯向量。机理拆解与自查方法写在这篇复盘。

通道诊断与评测 harness

  • vector_top_k=0 / keyword_top_k=0 现在表示禁用对应召回通道,不改代码即可做单路诊断;
  • 仓库新增离线检索评测(make eval):MIRACL-zh 数据集、双轨道四格通道矩阵、确定性指标与报告指纹,完整结果见 RETRIEVAL_BENCHMARK.md。

验证

三个缺陷均由评测驱动发现,修复后同指纹重跑验证:FTS 召回 0 → 0.13,hybrid 首次严格高于 vector-only(0.9826 对 0.9799),段落级 MRR 达 0.9975。