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