搜索架构之道:App中的搜索系统设计与优化实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 搜索全流程的3个核心场景

上一章讲述了6个App与搜索功能相关的需求输入、结果页、落地页3个场景。本节综合搜索客户端、系统搜索及各垂类App中的搜索相关能力,对搜索全流程相关的3个核心场景的能力进行梳理,如图2-1所示。

需求输入场景:重点是让用户正确表达搜索需求。客户端通常包含文本、语音、图像这3种输入方式,我们还可以通过硬件设备对需求输入进行扩展,硬件设备主要分为有线和无线两种类型。

结果页场景:重点是让用户准确找到想要的内容。结果页通常是网页格式,在自有客户端的支持下,也可以使用非网页的格式或网页+非网页的复合格式,甚至在客户端中可以对结果页进行业务扩展。

落地页场景:重点是让用户看到更多与结果相关的内容。落地页主要是网页格式,在自有客户端的支持下,也可使用非网页的格式或网页+非网页的复合格式,同样,在客户端中也可以对落地页进行业务扩展。

图2-1 搜索业务核心场景的流程及关系

按照上述划分,搜索客户端应该支持对这3个场景的搜索相关功能进行构建及优化。在设计及实现客户端功能时,需要考虑上述3个场景之间的关系,以实现场景间的切换。常见的搜索过程的场景切换如:需求输入→结果页→落地页→结果页→落地页……直到用户找到所需或者输入新的搜索关键字。

从上面的描述来看,结果页和落地页场景所实现的能力很相近,为什么还要把这两个页面单独拆分出来?主要有以下5个原因。

从定义的角度来讲:结果页是搜索结果页面的一种统称,落地页是点击搜索结果进入的页面的统称。

从分发的角度来讲:由结果页分发落地页,通常在搜索结果页中,用户点击不同的结果查看会进入不同的落地页。

从业务的角度来讲:搜索是一个业务,用户发起搜索后为用户展现结果页。点击结果进入的某个落地页,也可能是一个业务,比如地图、小说、视频和邮箱等,一些客户端是先有了具体业务,再有的搜索能力。

从扩展的角度来讲:结果页和落地页支持的功能不同,实现的逻辑也有所不同。结果页中的功能扩展主要关注为用户提供更好的搜索体验,而落地页中的功能扩展则关注为用户提供更好的浏览体验,以及为用户在浏览过程中产生的新的搜索需求提供更好的支持。

从服务的角度来讲:结果页对接的服务与落地页不同,结果页对接的是自有服务,而落地页对接的是自有服务或非自有服务。服务不同,可协同优化的方案也不同。

基于上述5个原因,将结果页和落地页拆分之后,流程变化可清晰描述,场景边界可明确管理,功能扩展可精准实施。