Categories
程式開發

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


如果你用谷歌或者百度进行搜索就会发现,当你在这些搜索引擎的框内键入某些内容时,它们可以根据输入的内容智能展现输入提示建议。本文作者正是带着这样的想法实现了一个具备类似功能的系统。

本文将展现如何设计一个大规模的自动完成输入提示建议的系统,就像 Google 搜索一样,整个设计是用 Docker Compose 实现的,可以在这里找到源代码:
https://github.com/lopespm/autocomplete

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

系统要求

最终的系统需要适应类似 Google 的搜索规模,即每天约 50 亿次搜索,也就是每秒钟约 5.8 万次查询。我们可以预期这些搜索中有 20% ,也就是每天有 10 亿次查询。

如果我们选择为这 10 亿条查询建立索引的话,平均每个查询有 15 个字符【2】,每个字符有 2 个字节(我们将只支持英语设置),这反映在托管这些查询所需的存储空间大约为 30 GB。

功能要求

  • 根据用户输入(前缀)获取热门的短语建议列表。

  • 通过加权按给定短语/查询的频率和相似度对建议进行排序【3】。

主要的两个 API 是:

  • top-phrases(prefix) :返回给定前缀的热门短语列表。

  • collect-phrase(phrase) :将搜索到的短语提交给系统。稍后,汇编器将使用这个短语来构建数据结构,这个数据结构将前缀映射到热门短语列表。

原文链接:【https://www.infoq.cn/article/2uHUkEAr7c4Wjcw8HuPH】。未经作者许可,禁止转载。