我有一个基于 ASP.net MVC3 的电子商务网站。它有appx。200k 产品。我们目前正在产品表中搜索,以提供现场搜索。
问题是它非常慢,当然,通过分析分析器的性能,我们发现主要问题是 sql 搜索。
还有哪些其他替代方法可用于加快搜索速度?我们是否需要为搜索构建单独的缓存或需要做其他任何事情?
如果您查看其他大型电子商务网站,例如 ebay、amazon 或 Flipkart,它们的速度非常快。他们是怎么做到的呢?
我有一个基于 ASP.net MVC3 的电子商务网站。它有appx。200k 产品。我们目前正在产品表中搜索,以提供现场搜索。
问题是它非常慢,当然,通过分析分析器的性能,我们发现主要问题是 sql 搜索。
还有哪些其他替代方法可用于加快搜索速度?我们是否需要为搜索构建单独的缓存或需要做其他任何事情?
如果您查看其他大型电子商务网站,例如 ebay、amazon 或 Flipkart,它们的速度非常快。他们是怎么做到的呢?
他们通常使用例如Lucene.NET或Solr(使用 Java,但可以使用SolrNet通过 .NET 调用它的实例)来构建可搜索内容的全文索引。
该索引是从您的 SQL 数据库构建的,您执行的任何搜索都需要通过向它发送查询来使用该索引,就像在 SQL 数据库上一样,但当然使用不同的语法。需要定期更新/重新创建索引以与 SQL 数据库保持同步。
这样的文本索引是为查询大量字符串数据而构建的,并且可以轻松处理您网站上的产品搜索功能中的数十万种产品。除了速度之外,如果没有文本索引,还有其他一些好处很难实现,例如拼写更正和模糊搜索。