架构-快速构建一个搜索系统
快谈如何快速构建一个简单的搜索系统,话不多说,马上开始。
Let‘s Go!
背景
为什么要构建一个搜索系统?最主要是解决什么问题?用户打开你的网站,没有一个搜索功能,不能从你的网站中快速的找到想要的信息,可能用户很容易就会流失掉。在搜索的时候,大部分用户都最多只知道自己想要大体信息,如:在想买饼干的时候,查找“饼干”,搜索系统就是需要猜测用户想要的是什么,然后把系统里面存在的信息与用户想查找的信息进行匹配之后。得到结果再返回给用户的一个系统。通过这个你来我往的交流过程之后,用户可能会对系统产生信任感,从而把用户留住。
系统架构
优点:
- 可搜索数据与原业务数据进行了解耦
- 可快速地扩展搜索系统的各组件。
- 只需由四个组件(图中实线的组件)即可快速地实现,实现第一期即可快速上线
- 支持多地部署。
缺点:
- 数据更新有一定延迟(后期可通过 即时数据异步更新 解决)
- 同步服务需要人工维护(后期可通过增加 同步服务管理系统 解决)
系统功能实现顺序推荐
第一期
- 业务数据访问接入
- 数据初始化
- 定期同步数据更新
第二期
- 服务监控
- 日志监控
第三期
- 即时数据异步更新
- 数据监控及管理服务
后续扩展
- 大数据推荐与搜索结果混合展示
最后
服务框架是随着业务发展不断演变的,我们会有1.0、1.5和2.0架构的迭代。要前瞻性地谋划和实施,要考虑未来三年、五年的容量。有一些系统瓶颈可能是要提前解决的,每一个场景不一样,根据特定的场景选择最合适的方案。
Written on January 19, 2018