开发者手撸类谷歌搜索关键字智能匹配功能系统

如果你用谷歌或者百度进行搜索就会发现,当你在这些搜索引擎的框内键入某些内容时,它们可以根据输入的内容智能展现输入提示建议 。本文作者正是带着这样的想法实现了一个具备类似功能的系统 。
本文将展现如何设计一个大规模的自动完成输入提示建议的系统,就像 google 搜索一样,整个设计是用 Docker Compose 实现的,可以在这里找到源代码:https://github.com/lopespm/autocomplete
开发者手撸类谷歌搜索关键字智能匹配功能系统

文章插图
 
系统要求最终的系统需要适应类似 Google 的搜索规模,即每天约 50 亿次搜索,也就是每秒钟约 5.8 万次查询 。我们可以预期这些搜索中有 20%,也就是每天有 10 亿次查询 。
如果我们选择为这 10 亿条查询建立索引的话,平均每个查询有 15 个字符【2】,每个字符有 2 个字节(我们将只支持英语设置),这反映在托管这些查询所需的存储空间大约为 30 GB 。
功能要求
  • 根据用户输入(前缀)获取热门的短语建议列表 。
  • 通过加权按给定短语 / 查询的频率和相似度对建议进行排序【3】 。
主要的两个 API 是: