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

2.2 需求输入场景及技术实现

在需求输入场景中,客户端为用户提供的输入方式为文本、语音及图像等,本节以文本输入为例介绍搜索功能在需求输入场景中的主要流程和技术实现,语音和图像输入的相关内容在本书第4章介绍。

典型的文本输入搜索过程如图2-2所示,该过程主要分为输入搜索关键字、展现搜索建议、点击搜索按钮三个步骤,其中输入搜索关键字和点击搜索按钮的动作由用户触发,展现搜索建议为搜索客户端提供的辅助输入功能,下面对典型的文本输入过程进行介绍。

图2-2 典型的文本输入搜索过程

在搜索App中都会有搜索框,支持用户输入搜索关键字。搜索框可使用系统的文本输入控件实现,这类控件在不同的平台中都有,比如iOS平台中的UITextField。用户在点击搜索框后,软键盘弹出,这时搜索框变为输入态,用户可以输入想要搜索的文本内容。

在用户输入文本的过程中,客户端“监听”输入内容的变化,向服务端(服务器)实时提交输入的关键字信息,并由服务端生成用户可能会搜索的关键字列表(搜索建议),客户端在收到服务端的搜索建议后会展现给用户。如图2-3所示,用户输入“刘德”,客户端向服务端提交获取“刘德”搜索建议的请求,服务端返回一组搜索建议信息如“刘德华”“刘德凯”“刘德一”……当用户选中“刘德华”时,就进入了结果页场景,此时客户端向服务端提交搜索“刘德华”的请求,加载结果页。

在这个阶段,除了业务流程的逻辑实现,还需要使用一些基础的技术来完成功能的构建,如多线程技术、网络数据通信技术、数据处理技术、展现技术和交互技术等。