跳到主内容
快讯直播
AI智模界
AI 词典

语义搜索与关键词搜索:找“意思”还是找“字眼”

一句话定义:关键词搜索是把查询拆成词,去文档里比对字面是否出现;语义搜索是把查询和文档都映射成向量(embedding),比较向量之间的距离,找“意思相近”的内容。

两种搜索在做什么

关键词搜索的底层是倒排索引(inverted index):先给每篇文档建一张“词 → 出现位置”的表,查询时把用户输入切词、去停用词,再按词项匹配(term matching)打分。经典算法如 AI 词典:TF-IDF">TF-IDF、BM25 都属于这一类,思路是“这个词在本文档里出现得多、在整个语料里少见,就更相关”。它的优点是精确、可解释、快,用户搜“iPhone 15 电池容量”,只要文档里有这几个词就能命中。

语义搜索走的是另一条路。它用模型把句子压成一串数字(向量),语义相近的句子在向量空间里距离更近。用户搜“手机续航不行怎么办”,即使文档里从没出现“续航”二字,只要讲的是“电池掉电快”,向量距离依然很近,就能被召回。衡量距离常用余弦相似度(cosine similarity)。

打个比方:关键词搜索像在图书馆按书名和目录卡片找书,卡片上写什么字就只能按什么字找;语义搜索像一位读过所有书的馆员,你说“我想找本讲人怎么面对失败的书”,他能给你拿来一本标题里根本没有“失败”二字的书。

关键区别

维度关键词搜索语义搜索
匹配依据词项字面出现向量相似度
擅长精确名词、型号、编号、人名口语化描述、同义改写、跨语言
短板换个说法就搜不到;同义词要人工配对精确串不敏感;易“看起来像但不对”
可解释性高,能说清命中哪几个词较低,只能给出相似度分数
更新成本增量建索引便宜文档改动需重新编码入库

混淆会出什么问题

最常见的误区是以为“上了向量库就等于搜得准”。实际工程里两类失败很典型:

一是召回阶段用错方法。用户搜订单号、报错码、产品型号这种“必须逐字对上”的查询,语义模型反而会把相邻型号混为一谈——搜 A1023 召回 A1032,对业务是灾难。这类查询应当保留词项过滤或精确匹配。

二是精度阶段没人管。语义召回把“意思沾边”的都捞回来了,但排序不行,用户前几条看到的是泛泛而谈的文章。常见做法是两段式:向量召回(recall)负责“不漏”,再用交叉编码器(cross-encoder)或业务规则做精排(rerank)负责“不滥”。

三是拿关键词指标评估语义系统。用“是否包含查询词”判断相关性,语义搜索天然吃亏;反过来只用相似度分数,又会放过语义漂移的结果。评估集要人工标注意图相关性,且以业务页面的实际数据为准。

对从业者和普通职场人的意义

对做 RAG(检索增强生成)的人:检索质量决定回答质量,别只调提示词。混合检索(hybrid search,向量 + BM25 加权融合)在多数场景比单一路线稳,具体权重需要在自己的数据上试,不要照搬别人的参数。

对普通职场人:当你在搜索框里怎么换词都搜不到想要的东西,往往不是你的问题,而是系统只做了字面匹配;反过来,如果搜一个精确编号却返回一堆“差不多”的结果,那是纯语义检索缺了约束。理解这一点,提需求时就能说清“我要的是找得全,还是找得准”。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。