建议降低输入成本并示范可搜内容
别名: 自动补全 · query suggestion · 搜索建议
概念解释
搜索框下拉里的建议(query suggestion / autocomplete)同时干两件不同的事。一件是补全:前缀已经敲了「差旅」,把后面的字补上,少敲几次。另一件是示范:用若干完整、真实被搜过或真实存在的说法,告诉用户「这里面有什么、那些东西被叫什么」。Hearst 把自动补全写成既减少击键、又提供查询语言的即时样本。两件事共用一个列表,但成功标准不一样——少击键看的是选中一条建议比写完更快;示范看的是用户是否从列表里学到一个自己原本写不出来的词。
建议不是结果。点建议仍应走到结果页,而不是直接打开某一条文档,否则示范变成了导航捷径,列表的语义被偷换。
机制
查询构造的成本高,是因为词要从记忆里生成。建议把生成改成再认:看见「差旅报销制度」比从空白里回忆出「制度」两个字便宜。再认还能越过词汇问题——用户只会写「报销」,列表里出现「差旅报销」,等于把索引语言提前展示,短查询在提交前就被拉长到可区分的程度。
示范要成立,列表必须是集合的诚实样本。全是热门词,冷门但真实存在的类型永远不会被示范,用户会以为那些类型搜不到。全是历史查询,示范的是「我以前搜过什么」,不是「这里有什么」。前缀匹配解决的是击键;覆盖多样类型解决的是气味——每一条建议都是「继续往这个方向搜会有东西」的证据。
怎么研究
把「少打了多少字」和「有没有学到可搜的说法」分成两个因变量,不要用点击率一个数代表建议成功。
- 范式:击键节省(选建议 vs 写完)与词汇习得(看过建议后能否独立写出完整说法);查询日志里建议点击后的查询长度变化;Hearst 对 autocomplete 作为查询辅助的讨论。
- 自变量:建议来源(前缀补全 / 热门查询 / 内容标题)、列表是否覆盖多种内容类型、空前缀时是否展示示范。
- 因变量:完成查询的击键数、建议点击率、点击后是否命中原本叫不出名的目标、用户能否指出「这里还能搜哪类东西」。
- 方法论注意点:高点击率可能只是热门项被点得勤,不证明示范了覆盖面。实验室若任务书已写出完整名称,建议只在比击键,示范功能被关掉。空前缀下的「猜你想搜」测的是推荐,不是补全,要分开报。
边界
已知项且线索是编号、错误码这类必须写对的字面时,示范热门词会抢注意力,补全应按字面前缀,不要插入「大家都在搜」。隐私敏感的查询(姓名、病历、未公开项目)被拿来当热门示范会泄露,示范源要过滤。集合极小、标题已经全部可见时,建议的示范价值接近零,只留下补全。输入法自己的候选条和搜索建议叠在一起时,示范会被输入法挡掉,移动端尤其明显。
怎么落地
- 列表同时服务两种成功:前缀命中的补全放前面,后面留出不同内容类型的完整说法,避免十条全是同一热词的变体。
- 用真实标题或真实高频合法查询做示范,不用内部字段名;每条应能让人预判搜下去会得到哪类对象。
- 点建议只填充或提交查询,不直接跳进某条详情,以保持「这是查询,不是结果」。
- 验证:找一个叫不出标准标题的人,看他能否从建议里挑出后来证明存在的说法。只能省字、学不到新词,示范没发生;建议全是他本来就会写的热词,列表只是在加速已知项,没有展示集合。