搜「缓存击穿」打成「缓存机穿」就一条都不返回,用户以为站里根本没有这个内容,看两眼就转身走了。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
# 近似查询示例 SELECT ID FROM wp_posts WHERE post_title LIKE '%缓存%穿%';
匹配要求字符完全一致,错一个字整串就对不上,也没有近似匹配做兜底,长尾搜索需求就这么丢了,而自己还没有察觉到。这一点先确认清楚,后面就不用反复试。
「搜索错别字容错」这类改动最怕改一半,回滚脚本先准备好,再动生产。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
具体做法是,先按用户输入的词原样查一次,结果正常就返回;零结果时按编辑距离放宽一档,允许错一个字符;把纠正后的词回显到搜索框里,让用户自己确认。
改完照着核一遍,错一个字仍然能出结果,页面提示按纠正后的词搜索并给出原词入口。
