jQueryのオートコンプリートを使用してタグを検索するためのオートコンプリート機能のような "Google Suggest"を実装しています。ajaxオートコンプリート用のWebサービスを実装する最良の方法は何ですか
jQueryにWebサービスを提供する必要があります。これは、ユーザーが入力した内容に基づいて提案のリストを提供します。
1)データベースにすべてのタグを格納し、ユーザー入力をプレフィックスとして使用してDBを検索するだけです。これは簡単ですが、待ち時間が心配です。
2)インプロセストライを使用してすべてのタグを保存し、一致する結果を検索します。すべてがインプロセスであるので、私はこれがはるかに低い待ち時間を持つと思います。しかし、いくつかの困難があります: - プロセス起動時にトライを初期化するにはどうすればよいですか?推測可能なのは、タグデータをDBに保存し、それらを取得して、プロセスを開始するときにトライに変換します。しかし、私はどのようにわからない。私はPython/Djangoを使用しています。 - ユーザーが新しいタグを作成するときに、新しいタグをトライに挿入する必要があります。しかし、5つのDjangoプロセスと5つの試行があるとしましょう。他の4つの試行でも、新しいタグを挿入する必要があると教えてください。 - 私のDjangoプロセスがスレッド化されるので、trieがスレッドセーフであることを確認する方法(私はmod_wsgiを使用しています)。あるいは、PythonのGILのためにスレッドを心配する必要はありませんか? - どのようにしても、タグの使用頻度をトライ内に保存できますか?タグの文字列がいつ終了するのか、いつ周波数が始まるのかをどのように伝えますか?私がapple213をトライに格納すると、それは周波数213の "apple"ですか、周波数13の "apple2"ですか?
上記の問題に関する助けや、別のアプローチに関する提案は本当に感謝します。
あなたはあなたのタグをいくつ考えていますか? – Josh
あなたはSOAPのようなものを使用するWebサービスについて話していますか?もしそうなら、私は複雑な余分なレイヤーを追加し、より多くの待ち時間を引き起こすので、これに対してWebサービスの使用を避けます。オートコンプリートの場合は、AJAXリクエストをサーバーに送信し、可能であれば、キャッシュされたデータベース結果から提案やクエリをデータベースに問い合わせます。 – rich
すべてのタグはユーザー作成となるため、そこにいくつのタグがあるのかは分かりません。それは本当に私のサイトがどのくらい人気を得ているか – Continuation