2011-01-10 20 views
1

はじめに、私はJOINSまたはフルテキスト検索を許可しないGoogle App Engineを使っています。オートコンプリート検索のサーバー/クライアントの負荷を分散する

問題:私は(Googleのインスタント検索など)自動補完検索バーを構築しようとしています。説明のために、データベースの各エントリがスペースのない大きな文字列であると仮定します。私が "cr"をタイプすると、 "cr"で始まるすべての文字列をオートコンプリートアシストします。私はGoogle App Engineでこの検索を達成する方法を考え出しましたが、入力検索バーでキーが押されるたびにサーバーにクエリをPOSTするのは恐ろしい考えです。

私は、クライアント側とサーバー側のキャッシュの組み合わせがこれを効率的に行うのに役立つと考えていますか?誰にもアイデアはありますか?ベストプラクティスのヒントありがとう。

答えて

1

キーを押すたびに、または1秒ごとのいずれか少ない頻度で、「最大50個のオプションをリクエストする」ようなことがあるかもしれません。私は一連の投稿要求が良い解決策になると思います。

サーバーでは、複数の関連するクエリが必要なので、クライアントに一度に50を送信しても1000の結果をキャッシュし、次のクエリでそれらの結果のサブセット。

0

キーを押すたびに、または少し一時停止しても、サーバーに頻繁に問い合わせることは本当にありません。サーバーが現在の文字列の提案だけでなく、最も可能性の高い次の文字を送信するようにして、クライアントがクエリの必要性を避けることができるようにすることで、これを少し改良することができます。あなたの主な焦点は、おそらくこのサーバーの終わりが高速かつ効率的であることを確認することです。

関連する問題