2012-04-24 51 views
2

我在ASP.net MVC3建立了一个电子商务网站。它有appx。 200k的产品。我们目前正在产品表中搜索以提供现场搜索。如何提高电子商务网站的搜索性能?

的问题是,它是致命的慢,当然,通过探查分析性能,我们发现,它是SQL搜索这是主要的问题。

什么是可以用来加速搜索其他的方法?我们是否需要为搜索建立一个单独的缓存或其他任何需要完成的内容?

如果你看看其他的大型电子商务网站,如eBay,亚马逊或者flipkart,他们是非常快的。他们是如何做到的呢?

回答

6

它们通常使用例如Lucene.NETSolr(使用Java,但可使用SolrNet通过.NET调用它的一个实例)构建可搜索内容的全文索引。

该指数是从您的SQL数据库和你需要通过像使用SQL数据库查询发送给它使用该索引中的任何搜索,但有不同的语法课程的构建。该索引需要定期更新/重新创建,以保持与SQL数据库的最新状态。

这样的构建文本索引的查询大量字符串数据,并可以轻松处理成千上万的产品在网站上的产品搜索功能。除了速度,还有其他的好处,如果没有文本索引,很难做到,比如拼写纠正和模糊搜索。

+0

我已经审查了Lucene.net和SolrNet,但不知道这是适合我的情况。我在NopCommerce上建立了购物车。因此,这将需要建立产品索引,并且我们需要将其与搜索结果页面集成在一起,如果我没有错误,将会显示所得到的一组产品。请建议。 – Krunal 2012-04-26 06:02:08

+0

Lucene.net还有其他的选择吗?如果是的话,他们值得考虑? – Krunal 2012-04-27 07:45:08

+0

Lucene.NET是唯一一个我知道的,我几乎可以肯定它是最复杂和完整的.NET。 Solr也使用Lucene作为它的引擎(但是它的Java兄弟,而不是Lucene.NET),所以它更多的是构建在它之上的框架。据我所知,无论是Java还是.NET,Lucene都是托管世界中全文索引的首选工具:)我认为Solr更适合您,请参阅http://goo.gl/ psrTW。 – JulianR 2012-04-28 16:03:48