用户在搜索框敲下 quanju 或者 qj,站内明明有几篇讲「全局配置」的文章,结果页却只显示没有找到相关内容。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,索引里只存了汉字,没有对应的全拼和首字母字段,用户用键盘输入拼音时匹配不到任何记录,只能返回空结果给用户,很尴尬。
「拼音搜索」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。报错里带路径的,先去看那个路径在不在、权限对不对。
ALTER TABLE wp_posts ADD title_pinyin VARCHAR(255); ALTER TABLE wp_posts ADD title_init VARCHAR(32); UPDATE wp_posts SET title_pinyin='quanju' WHERE ID=1; UPDATE wp_posts SET title_init='qj' WHERE ID=1;
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
具体做法是,先给文章表加上一列,专门存标题的全拼字符串;再加一列存首字母缩写,这一列长度可以短一些;查询时让三列一起参与比对,命中任意一列即可。
最后用这个标准收尾,输入全拼和首字母都能命中同一篇文章,结果顺序也保持一致。
