1

私は、平均して毎日 5000 ヒットを取得する Web サイトを持っています。すべてのページにオートコンプリート検索ボックスがあります。私のデータベースには約 5000 のキーワードがあり、徐々に増えていきます。ユーザーがオートコンプリート検索ボックスに 3 番目の文字を入力するとすぐに、ashx ハンドラーに ajax 呼び出しを行います。次に、Ashx ハンドラーは、ユーザーのクエリで「始まる」データベースからすべてのキーワードを取得します。

しかし、このプロセスは遅いと思います。ここで2つのオプションを考えています。

1. キーワードを xml ファイルに保存します。そして、XpathNavigator、Linq などの手法を使用して、このファイルをキーワード検索用に処理します。

2. すべてのキーワードを SortedList/ Hashset オブジェクトに格納し、このオブジェクトをキャッシュに保存します。

どのオプションが自分にとって実行可能かを判断できません。オブジェクト全体をキャッシュに保存する場合のパフォーマンスのオーバーヘッドまたはリスクはどのようなものでしょうか?

4

1 に答える 1

3

トライツリーを使用します。これは、検索エンジンや携帯電話のオートコンプリート辞書で使用されているデータ構造です。

于 2013-04-08T06:55:12.097 に答える