用了这么多次微信搜索,第一次这么深入地研究微信搜索的逻辑。不知道你有什么感悟,欢迎来和我分享你的看法。 一、本文框架 本文将按照如下的框架展开: 二、关于搜索 一直以来,都觉得搜索和解谜有几分相像。解谜是通过特定的线索找到对应的谜底,而搜索是根据用户输入的关键词快速找到用户想要寻找的内容。 当然,这一点是从产品实现逻辑上讲的。如果从展现层看,搜索就是在用户输入关键词后,在界面上展示(输出)相关的搜索结果。如下图所示: 那从用户输入关键词到产品界面上展示搜索结果,这中间发生了什么?让我们以微信和「用户体验」为关键词来看下搜索背后的逻辑。 (1)搜索词处理 如图所示,当用户在微信搜索框里输入「用户体验」时,微信需要对用户输入的搜索词「用户体验」进行识别、处理和分析,以确定用户可能要找什么类型的内容。 在当前场景下,处理后的结果可能有: 词语的含义 相关的书籍 相关的报告 相关的文章 相关的公众号 相关的事件 (2)获取搜索数据 根据(1)的处理结果,匹配数据库获取相应的数据。 那原始数据是从哪里来?一部分是用户自己生产(UGC)的,也有一部分是从合作平台处获取。 在当前场景下,处理后的结果可能有: 词语的含义 —— 用户体验的含义 相关的书籍 —— 《用户体验要素》 相关的报告 —— 暂无 相关的文章 —— 微信用户体验报告 相关的公众号 —— 艾体验 相关的事件 —— 暂无 其它 —— 微信备注:用户体验设计师 (3)搜索结果排序 产品需要按照一定的规则对(2)中的匹配数据进行排序。 在当前场景下,排序后的结果可能为: 微信备注:用户体验设计师 公众号:艾体验 文章:微信用户体验报告 含义:用户体验的含义 书籍:《用户体验要素》 (4)搜索数据展示 产品设计师需要根据搜索结果的类型设计对应的展示方式,而程序负责向用户根据产品设计师的设计展示对应的搜索结果。 (5)排序规则的用户 当搜索结果展示给用户之后,用户可能点击了其中几项,也可能一项都没有点击。产品经理或算法工程师需要根据用户最终的点击行为优化排序规则,调整排序算法,以使下一次的搜索结果排序更为准确。 而对于微信来说,使用微信搜索的用户有一个明显的特征:任务型用户,即用户目的性很强,想要找到在微信里曾经看到过的某个内容。主要有以下几个场景: 用户可能了解自己想要寻找的内容出现在哪里。 可能不记得内容是在朋友圈看到的还是别人分享给他的。 只是想在微信里搜搜看。 接下来,我们分别从搜索前、搜索时、搜索后分别看下微信的搜索。 三、搜索前(入口) 微信搜索的入口:微信主页面 – 内容区域的顶部,如下图: 使用路径的缩短,减少了用户的学习和使用成本,让用户用得更爽。 四、搜索时 1. 搜索方式上 搜索方式上,支持手动输入和语音输入。现在已有的搜索方式有三种:手动输入(识字)、语音输入(识音)、图片输入(识图),微信已覆盖了其中的两种,已能满足绝大部分场景。 语音输入时的文案(按住说话)与手动输入时(搜索)有明显区别。 和手动输入相比,语音输入操作简单,而且这里的交互和语音聊天的交互一样,基本没有学习成本。不过,语音输入对周围环境、语音识别的准确率(机器)、关键词搜索能力要求很高(用户自己),不清楚语音搜索的效果如何。 机器识别代替人工输入,减少人工输入成本,提高用户体验。 2. 搜索类型上 从搜索页面,可以很明显地看到搜索的指向性以及搜索方式的存在。 首先,看下搜索内容的指向性,包括这六类:朋友圈、文章、公众号、小程序、音乐、表情。 从数据量上:朋友圈、文章、公众号、音乐、表情这几个都很大。 那为什么会有小程序,这个生命周期才两年的产品?做推广?凑整数? 数据决定一切。 根据 TalkingData 的报告显示:小程序用户规模从零增长至 4.15 亿只用了 446 天,而微信用户规模从零增长至 4 亿花了 916 天。在微信大流量的基础上,小程序用户规模的增速远超当时微信的发展。 搜索类型的区分,方便用户快速找到自己想要的内容。 五、搜索结果(搜索后) 微信 VS 百度网页版搜索路径对比: 从上图可见,微信在用户确认输入内容后,直接显示搜索结果,而百度网页版在用户确认输入内容后,会根据用户输入的内容展示搜索结果联想,需要用户点击「搜索」才会出现对应的搜索结果。从使用路径上看,微信比百度网页版少了一步。 使用路径的缩短,提高了用户使用效率。 细节一:最常使用 和 联系人 为什么文案是「最常使用」,不是「最常联系」?猜测和算法有关,使用「最常联系」可能会导致误解。猜测「最常使用」的算法和最近联系时间、每次联系时发的消息次数、联系频率相关。 用技术提高搜索结果的准确性,提升用户找到「想要寻找的内容」的准确性。简言之,提高了搜索的准确性。 细节二:搜索结果的排序 搜索结果的排序为:最常使用 -> 联系人 -> 群聊 -> 功能(微信自带的功能) -> 游戏 -> 使用过的小程序 -> 关注的公众号 -> 聊天记录 -> 收藏 -> 搜一搜 -> 搜索推荐词 1. 除「收藏」只展示一条以外,其余每一类展示数量不超过 3,若搜索结果超过 3 将被折叠显示,点击进入新页面可查看。 2. 同一类的排序为 A-Z,和通讯录的排序一致。微信里只有两种排序:按时间和首字母 A-Z。 3. 搜一搜里支持:朋友圈、公众号、音乐、文章、小程序、视频、表情、百科、小说、问答等内容。这些内容搜索里是无法搜出来的。因搜索页的指定内容搜索对用户的搜索进行了分流,从而这里的优先级偏低,且内容为折叠状态。 分析: (1)为什么「聊天记录」的优先级这么低? 猜测: 其一,聊天记录的搜索可以精准地避开排在「聊天记录」之前的项。 其二,「聊天记录」匹配时的命中率太高。 (2)为什么只有「收藏」仅展示一条数据,且优先级超级低? 俗称「知识都是藏在你的收藏里」或者「随手收藏,从来不看」,看起来是有道理的。一般用户对自己收藏的内容都没什么印象,因此依靠记忆去通过「搜索」这一功能查找收藏内容的可能性很低。 细节三:用户输入的搜索内容不同,提示文案不同 如图所示,输入字母时,文案为「微信号」,输入数字时,文案为「手机/QQ号」,用户不存在的提示,文案为「用户」和「账号」。 分析: 1. 为什么文案在搜索时不统一为账号,或者在提示框里不分别列出「微信号」或「手机/QQ号」? 搜索做区分,会给用户一种「我知道你要找什么」的感觉。—— 我懂你的感觉。如果不做区分,就没有这种情感化的效果。 提示弹框为什么不区分,微信号和手机/QQ 号在微信里都会折射成一个人,一个用户。虽然最终会折射到一个人身上,但不能提示「该人不存在」,一来不是很友好;二来,并没有表达清楚意思,很有可能会造成误解。 而用户搜索的内容(不管是微信号、QQ号、手机号)对微信系统来说,都属于账号。用户和账号的对应与搜索的具体的人和对应账号的对应正好契合。同时,用户和账号本身是不会造成误解的。 2. 那为什么不把账号区分为「微信号」和「手机/QQ号」? 猜测这个场景出现的频率不高,同时在搜索不出来这个场景下点击搜索内容致使出现这个弹窗的频率应该更低,因此没有必要做更细节的优化。 文字和数字输入时的区分,有种"我懂你输入的东西是什么"的感觉。 细节四:搜一搜结果的「千词千面」 1. 在以「测试」为关键词进行搜索时: Tab 排序为:全部、小程序、公众号、朋友圈、文章、表情、百科、视频、音乐、问答、小说。 搜索结果排序为:公众号 -> 小程序 -> 影视作品 (一屏)-> 文章 -> 朋友圈 -> 相关搜索 -> 网页搜索 -> 按条件筛选文章 -> 视频 -> 百科 -> 文章。 2. 在以「录屏」为关键词进行搜索时: Tab 排序为:全部、问答、小程序、朋友圈、文章、公众号、表情、视频、百科、小说、音乐。 搜索结果排序为:问答(知乎)-> 朋友圈 -> 文章 -> 相关搜索 -> 小程序 -> 文章 -> 网页搜索 -> 按条件筛选文章 -> 文章。 3、在以「iPhone」为关键词进行搜索时: Tab 排序为:全部、朋友圈、商品、公众号、文章、小程序、音乐、百科、小说、问答、视频、表情。 搜索结果排序为:公众号-> 商品(京东自营)-> 朋友圈 -> 物品(跳转小程序)-> 文章 -> 翻译(网易有道小程序)-> 最新报道(腾讯新闻)-> 百科(搜狗百科)-> 客服查询服务(搜狗号码小程序)-> 相关搜索 -> 文章 -> 问答(知乎)-> 文章 -> 按条件筛选文章 -> 文章。 其中,「按条件筛选文章」的筛选项都是一样的,包括: 搜索范围:不限、最近读过、由已关注的公众号发布、朋友分享过 排序:综合排序、按发布时间排序、按阅读量排序 分析: 1. 为什么搜索结果会出现「千词千面」这种情况? 搜索场景的复杂性。由于微信不止是一个通讯工具,还涉及公众号、购物等多种场景,而在每一种场景下都会衍生出搜索的需求,导致搜索场景的复杂度不亚于百度搜索。 关键词在各个搜索场景下有重合,且含义可能不同。由于搜索场景的复杂,导致每个搜索的关键词在每个场景下都会有自己的含义,因此只能交叉出结果,因为系统没法确认用户想要找的是哪个。而某一个关键词在某个场景下可能本身就不存在,所以,Tab 可变的这种处理本身是合理的。 微信对搜索结果的准确性进行了处理,以确保在不清楚用户真正需求的情况下给用户最接近用户寻找的答案。 2. 为什么「按条件筛选文章」的筛选项如此设计? 重新回到搜索场景,为什么用户会到微信里搜索,而不是去其它搜索引擎搜索。因为用户要搜索的内容在微信里出现过,但究竟是哪里出现过,用户可能记不清楚了。但是这个内容用户一定读过(这不是废话嘛,没读过的话很有可能就不会来这里搜索了),那用户会在哪里接触到这个内容? 一个场景是朋友分享在朋友圈的, 一个场景是朋友分享给自己的, 一个场景是朋友分享到我所在的群里, 一个是在自己的公众号里见到过。 而前三个场景都能总结为:朋友分享过。 那既然用户会来微信搜索,是因为之前读过这个内容,但为什么搜索范围里会有「最近读过」? 与用户来这里搜索最匹配的场景是「最近读过」,所以,搜索范围增加了这个选项,同时可以向用户传达「除了你读过的,这里还能搜索到你没有读过的」含义。 关于「最近读过」的定义?什么算最近?什么算读过?这个还有待研究。 微信版本:微信 iOS 版 Version 7.0.3 设备:iPhone 6s (iOS 12.1.4) 我是佐珥,如果你对我的分享感兴趣,欢迎关注我。