開發者手擼類谷歌搜索關鍵字智能匹配功能系統

如果你用谷歌或者百度進行搜索就會發現,當你在這些搜索引擎的框內鍵入某些內容時,它們可以根據輸入的內容智能展現輸入提示建議。本文作者正是帶着這樣的想法實現了一個具備類似功能的系統。

本文將展現如何設計一個大規模的自動完成輸入提示建議的系統,就像 Google 搜索一樣,整個設計是用 Docker Compose 實現的,可以在這裏找到源代碼:
https://github.com/lopespm/autocomplete

系統要求

最終的系統需要適應類似 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】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章