中文问句为什么把全文检索打成 0 分:一次混合检索单路失效的复盘
「埃及有哪些民族?」这样的日常问句,会让 SQLite FTS5 的中文全文检索一条都查不出来,混合检索则悄悄退化成纯向量——不报错、不告警、指标看起来正常。讲清病灶机理、查询侧修复的思路,以及怎么自查你的 FTS 通道是不是已经空转。
Journal · 博客
关于 RAG、MCP、知识库与检索系统:经验、判断、失误,以及那些值得多想一步的实现细节。关于站点主体、技术资料与更正方式,见关于琅嬛。
「埃及有哪些民族?」这样的日常问句,会让 SQLite FTS5 的中文全文检索一条都查不出来,混合检索则悄悄退化成纯向量——不报错、不告警、指标看起来正常。讲清病灶机理、查询侧修复的思路,以及怎么自查你的 FTS 通道是不是已经空转。
知识库产品最该量的是检索质量,可我们手里只有功能测试。这篇讲琅嬛怎么建检索评测:200 条人工标注的真实查询、双轨道四格矩阵、同指纹逐位可复现,以及它第一天就抓出的线上 bug 和终于被数据证实的混合检索。
想验证本地 RAG 知识库,不必先装一套数据库和队列。先用单二进制把文档、中文检索和 Agent 接通;到了真实并发和运维阶段,再换生产部署。
第二个 Agent 开始共用资料时,问题不在于再传一份文档,而在于谁来处理版本、检索、权限和出处。MCP 知识库该怎么放在系统里。
把文档全塞进 Claude 或 ChatGPT 的项目知识库,迟早撞上上下文限制:先回答变差,后文件被拒。讲清症状与原因,以及把知识库搬出上下文、按需检索的做法。
pgvector 存向量、zhparser 做中文分词全文检索,一条 SQL 栈即可搭建可追溯的中文混合检索,不额外引入专用向量库。
为什么纯向量检索会漏掉精确关键词,全文检索补什么,RRF 怎么确定性融合双路召回,以及这样做的代价。
对比 stdio、SSE 与 streamable HTTP 三种 MCP 传输的适用场景、部署与安全差异,并给出选择清单。
用大白话讲清 Model Context Protocol 解决什么问题,server、client 与 tool 各是什么,以及一个知识库如何变成可被 MCP 调用的服务。
在搭建多个企业 Agent 时,我发现最容易被重复建设的不是模型能力,而是知识的导入、权限、检索与证据链。