これはインタビューの質問です。オートコンプリート用の分散バックエンドを設計します。
私は次のように答えます:
オートコンプリートは、指定されたサフィックスによる辞書の検索です。辞書はおそらくトライとして編成されるべきです。辞書は最も頻繁なクエリから作成されていますが、それは別の話です。
今、私は辞書が頻繁に変更されないと仮定します(たとえば、ミリ秒ごとではなく1日1回)。したがって、オートコンプリートクエリを処理する複数のサーバー間で辞書を複製できます(たとえば、ロードバランサーとラウンドロビンポリシーを使用)。
辞書についても考える必要がありますが、これもまた別の話です。
それは意味がありますか?私は何かが足りないのですか?