2012-04-24 13 views
2

私はASP.net MVC3に基づいて構築された電子商取引のウェブサイトを持っています。それはappxを持っています。 200k製品。私たちは現在、サイト上で検索を提供するための製品表を検索しています。電子商取引サイトの検索パフォーマンスを向上させる方法は?

問題は非常に遅く、もちろんプロファイラのパフォーマンスを分析することで、主な問題であるSQLの検索であることがわかりました。

検索のスピードアップに使用できる他の方法は何ですか?検索のために別のキャッシュを構築する必要があるのでしょうか、それとも何かを行う必要がありますか?

ebay、amazon、またはflipkartのような他の大規模な電子商取引サイトを見ると、それらは非常に高速です。どうやってやっているの?

答えて

6

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

インデックスはSQLデータベースから作成され、SQLデータベースと同じようにクエリを送信することによってインデックスを使用する必要がありますが、構文は異なります。インデックスは、SQLデータベースを最新の状態に保つために定期的に更新/再作成する必要があります。

このようなテキストインデックスは、大量の文字列データを検索するために作成されており、ウェブサイトの商品検索機能で何十万もの商品を簡単に処理できます。スピードを除けば、スペルの修正やファジー検索など、テキストインデックスなしでは非常に難しい他の利点があります。

+0

私はLucene.netとSolrNetの両方を見直しましたが、私の場合にはどちらが適切かはわかりません。私はNopCommerceにカートを作りました。だから、これは製品のインデックスを構築する必要があります私は間違っていない場合、結果の製品のセットが表示される検索結果ページとそれを統合する必要があります。アドバイスお願いします。 – Krunal

+0

Lucene.netの他の選択肢はありますか?もしそうなら、彼らは検討する価値がありますか? – Krunal

+0

Lucene.NETは私が知っている唯一のものです。そして、私はそれが最も洗練されていて、.NET用に完全であることはほとんど確信しています。 SolrはLuceneをエンジンとして使用しています(Lucene.NETではなくJavaの兄弟です)。そのため、Solrはその上に構築されたフレームワーク以上のものです。私が知る限り、それはJavaまたは.NETであり、Luceneは管理対象世界のフルテキストインデックスのためのツールです:)そして、私はSolrがあなたにとってより適していると思っています。http://goo.gl/ psrTW。 – JulianR

関連する問題