fuzzy对比:一次搜索改造

fuzzy对比不能只看演示效果,要放进真实流程。这里复盘一个后台客户搜索改造:从精确匹配到模糊匹配,再到组合排序。数据量不大,问题却典型:销售搜不到客户、搜到了又排不准,最后靠几步小改动解决。

步骤1:先记录原始问题,不急着上库

场景是一个B2B后台,客户表约4.8万条,字段有公司名、联系人、手机号、备注。销售抱怨最多的是“明明有客户,搜简称搜不到”。比如库里是“深圳市蓝海智能科技有限公司”,他们只搜“蓝海智能”。

我们先拉了两周搜索日志,挑出300条零结果和低点击查询。问题分成四类:公司后缀干扰、错别字、联系人同音、手机号漏位。这个动作很关键,因为 fuzzy对比要比真实问题,不比想象中的完美样例。

步骤2:拿精确匹配做基线

原系统只做 LIKE 包含匹配。优点是可解释、快、不会乱联想;缺点也明显:输入少一个字、换一个简称就没结果。300条样本里,人工判断应命中的有214条,系统实际命中129条。

这个基线不能省。没有基线,后面加 fuzzy 只会陷入“感觉好多了”。我们记录三个数字:应命中数、实际命中数、首位正确数。首位正确尤其重要,因为销售通常只点前3个结果。

想要完整资源?

会员专享,海量内容

立即查看 →

步骤3:加入fuzzy候选,但不直接放到第一

第一版我们用公司名清洗字段做 fuzzy:去掉“有限公司”“集团”“股份”等后缀,统一全半角和空格,再计算相似度。结果命中数从129涨到183,但误召也增加了,几个名字相近的公司互相抢位置。

这里的教训是:fuzzy不是替换精确匹配,而是补候选。排序上我们让精确包含优先,fuzzy候选排第二层;手机号仍然只做精确和前缀,避免搜错号码。

步骤4:加字段权重,做第二轮对比

第二轮把字段权重加进去:公司名权重最高,联系人次之,备注最低;最近跟进过的客户加分;已归属当前销售的客户加分。这样同样 fuzzy 分数下,业务上更可能被点击的记录会靠前。

再次跑300条样本,应命中214条里命中198条,首位正确从原来的96条提高到171条。误召没有完全消失,但销售反馈明显变少,因为真正想找的结果已经在前面。

步骤5:上线后盯三类词

上线不是结束。我们重点看三类查询:零结果词、结果多但没人点的词、点了又马上返回的词。前者说明召回不够,后两者说明排序不准。

这个案例里的 fuzzy对比结论很清楚:单独 fuzzy 能提高召回,但会带来噪声;清洗字段、保留精确优先、叠加业务权重,才是可上线方案。别迷信某个相似度函数,真实搜索永远是组合拳。

常见问题

fuzzy对比时看哪些指标?

至少看召回、误召、首位正确率。在线后再看点击率、零结果率、搜索后转化。只看命中数量会掩盖排序问题。

小公司后台有必要做fuzzy吗?

如果用户经常搜姓名、客户简称、商品短名,就值得做轻量版。几万条数据不一定要上复杂引擎,先做清洗和候选排序。

fuzzy上线前怎么测试?

用真实日志抽样,人工标注正确结果。每次改规则都跑同一批样本,避免新规则解决一个问题又制造两个新问题。

获取完整内容

加入会员,海量资源任你看

立即进入 →