1

クライアント側のJavaScriptだけを使用して、FusionTablesインターフェイスで利用可能なオートコンプリートロジックを実装しようとしています。

ここに画像の説明を入力してください

これまでのところ、これはうまく機能していることがわかりました:https ://developers.google.com/fusiontables/docs/samples/autocomplete

これにより、プロパティのすべての値をグループ化して取得できるため、それらをオートコンプリートできます。問題はそれが非常に遅いということです。クエリ

"SELECT 'Store Name', COUNT() " +
            'FROM ' + tableId + " GROUP BY 'Store Name'

毎回、実行に最大10秒かかります。これは、私のテーブルが15万行を超える非常に大きいためです。

ただし、上のスクリーンショットのネイティブインターフェイスは非常に高速です。コードを調べて、どのタイプのクエリを実行しているかを確認しようとしましたが(おそらく、これらの結果のキャッシュがあります)、解決策につながるものが見つかりません。

何か案は?私の考えでは、Google Native Interfaceがそれを実行している場合、それを実行する方法も間違いなくあります...これらの結果をキャッシュするためにサードパーティのサーバーを使用する必要はありません。簡単に修正できますが、それは私の問題の解決策ではありません。

4

1 に答える 1

0

サーバー側でネストされたセットやトライデータ構造のようなものを使用していると思います。入れ子になったセットはクエリでは高速ですが、挿入では高速ではなく、トライ データ構造はテキスト検索でも高速です。2つを組み合わせて高速検索を行うことができると思います。

于 2012-07-30T08:20:10.940 に答える