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

1.3.7 小结

通过对比多款App中的搜索功能我们发现,每个App的搜索流程基本都是一样的,但在不同场景内的实现细节均有不同。

需求输入:主要为文本、语音、图像及自定义的形式,有关输入过程中客户端的并行化响应及技术实现的内容将在第4章进行介绍。

结果页:结果页的内容主要是网页或自定义的格式,网页格式的内容主要依赖于浏览内核,网页功能扩展的实现在第5章进行介绍。搜索结果依赖于检索的能力,检索的内容与产品的定位有关,关于检索服务端相关的技术实现在第3章进行介绍。

落地页:落地页的内容主要是网页或自定义的格式,根据内容不同可以定制不同的能力扩展,实现搜索浏览过程的需求闭环。与页面加载、展现及交互过程优化相关的内容,在第6~9章均有介绍。

其他:例如登录、支付、理财、预加载、无图等功能是为了满足App的需要而构建的,这些功能要在客户端逐一实现,并支持App业务流程中的每个环节,甚至是可被搜索到及直接使用的。

为什么这些App都要构建搜索能力呢?答案只有一个——搜索是帮助用户找到所需信息的最高效的方法。当App中的信息量达到一定的量级时,如果没有提供搜索功能,那么用户找到所需信息的成本将会非常高,甚至可能无法实现。所以,随着App中信息量的不断增加,会有越来越多的App构建搜索能力,以实现帮助用户快速找到所需的目标。在用户有明确需求的场景中,相比于为用户推荐内容的功能,搜索功能显然是更合适的。从技术的角度来看,构建搜索能力的关键是理解用户的需求,产品中要有内容可供搜索,搜索到的内容要能正常展现及交互,这些过程都离不开客户端的支持。有了搜索客户端,还能够根据业务的需要来实现搜索能力的差异化定制。

注意

本书的内容围绕搜索系统的架构设计展开,在后续的内容中“搜索App”可以理解为包含搜索功能的App或以搜索为主要功能的App。“搜索App”有客户端和服务端两个部分,“搜索客户端”更偏重搜索App中的客户端部分。


[1]在本书中,浏览内核代指网页浏览内核,比如系统提供的API UIWebView、WKWebView、WebView或自定义的网页浏览能力。