2

ASP.netMVC3に基づいて構築されたeコマースWebサイトがあります。それはappxを持っています。20万個の製品。現在、サイトでの検索を提供するために製品テーブルを検索しています。

問題はそれが致命的に遅いことです、そしてもちろん、プロファイラーのパフォーマンスを分析することによって、それが主な問題であるSQL検索であることがわかりました。

検索を高速化するために使用できる他の選択肢は何ですか?検索用に別のキャッシュを作成する必要がありますか、それとも他に何かを行う必要がありますか?

ebay、amazon、flipkartなどの他の大規模なeコマースサイトを見ると、非常に高速です。どうやってやっているの?

4

1 に答える 1

6

彼らは通常、たとえばLucene.NETまたはSolrを使用して検索可能なものの全文索引を作成します(Javaを使用しますが、そのインスタンスはSolrNetを使用して.NETを介して呼び出すことができます)。

インデックスはSQLデータベースから構築され、SQLデータベースの場合と同じようにクエリを送信して、そのインデックスを利用する必要がありますが、もちろん構文は異なります。SQLデータベースを最新の状態に保つには、インデックスを定期的に更新/再作成する必要があります。

このようなテキストインデックスは、大量の文字列データをクエリするために構築されており、Webサイトの製品検索機能で数十万の製品を簡単に処理できます。速度以外にも、スペル修正やあいまい検索など、テキストインデックスなしでは実行が非常に難しい他の利点があります。

于 2012-04-24T15:11:05.233 に答える