做AI文档搜索的人,大概都迷信过一件事:语义理解终将淘汰关键词匹配。就像智能手机淘汰功能机,只是时间问题。

作者也是这么想的。他给处理PDF的AI Agent搭了两套搜索系统,一套用向量嵌入,一套用老派的关键词匹配。测试前几轮,语义搜索的表现堪称教科书——搜"income growth",它能找到写着"revenue increased"的页面,俩词完全不沾边,意思却精准命中。关键词搜索当场懵圈,这局毫无悬念。

直到他随手输了一个发票号。

语义搜索居然也返回了正确页面。但作者很快发现不对劲:系统根本没"理解"那个数字,它只是碰巧把发票号所在的段落和某个查询向量算成了近邻。「The tool found the right page. But it found it for the wrong reason.」换句话说,换一份真实文档,这页根本不会出现。

关键词搜索反而稳得很。发票号就是发票号,匹配就是匹配,不搞玄学。

作者最后把两套系统都保留了。语义搜索负责"大概什么意思",关键词兜底"具体是什么"。这个组合看起来不够优雅,但在真实业务场景里,没人关心你的技术路线够不够先进——只关心发票号能不能找对。