用户搜索“猫粮过敏”,相关内容可能写着“宠物对食物成分出现不良反应”。向量检索能捕捉两种说法的语义接近,但如果用户输入的是型号、专有名词或精确条件,仅靠语义相似度又可能漏掉关键字。语义搜索结合关键词与向量检索,核心不是二选一,而是让两种检索分别弥补对方的盲点。
关键词检索适合找明确出现的词语,对专名、数字、术语和精确表述更敏感;向量检索适合处理同义改写、口语表达和措辞差异。前者强调字词是否匹配,后者估计内容表达是否接近。两者都可能误判:关键词会漏掉换了说法的相关内容,向量则可能把主题相近、实际条件不符的内容排在前面。
常见做法是让两路检索并行召回候选内容,再合并结果并排序。不能简单把两路原始分数相加:关键词匹配分数和向量相似度的含义、尺度未必一致。融合时可以先统一分数尺度,或依据各路结果的名次合并;随后结合查询词是否命中、语义相关性以及业务约束调整排序。若用户查询含有必须满足的条件,不能让较高的语义相似度抵消条件未命中。
检索设计也应先明确任务:用户是在找某个确切对象,还是在描述一个意思?前者应提高关键词匹配的作用,后者应让向量检索承担更多召回工作。对于混合查询,则保留精确词项的约束,同时用语义检索补足不同表达。
最终效果不能只看“搜到了相关内容”。还要检查结果是否漏掉关键术语、是否把相似但不等价的内容排得过高,以及否定、范围等限定条件是否被保留。混合检索提升的是发现相关内容的能力,不会自动保证结果正确;排序规则仍需围绕真实查询和任务要求校准。
文章版权归作者所有,未经允许请勿转载。
参与讨论
暂无评论,快来发表你的观点吧!