performance - 如何提高电子商务网站的搜索性能?

标签 performance asp.net-mvc-3 search e-commerce binary-search

我有一个基于 ASP.net MVC3 的电子商务网站。它有约。 20 万个产品。我们目前正在产品表中搜索以提供现场搜索。

问题是它非常慢,当然,通过分析分析器的性能,我们发现主要问题是 sql 搜索。

还有哪些其他替代方法可以用来加快搜索速度?我们是否需要为搜索构建一个单独的缓存或其他任何需要做的事情?

如果您看看其他大型电子商务网站,如 ebay、amazon 或 flipkart,它们的速度非常快。他们是怎么做到的?

最佳答案

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

该索引是根据您的 SQL 数据库构建的,您进行的任何搜索都需要通过向该索引发送查询来使用该索引,就像在 SQL 数据库上一样,当然语法不同。索引需要定期更新/重新创建,以与 SQL 数据库保持同步。

这样的文本索引是为查询大量字符串数据而构建的,可以轻松处理您网站上产品搜索功能中数十万种产品。除了速度之外,如果没有文本索引,还有其他一些好处是很难实现的,例如拼写更正和模糊搜索。

关于performance - 如何提高电子商务网站的搜索性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299715/

相关文章:

java - Java中同步部分的性能

c# - 在 32 位 Windows XP 下的 C#4/T-SQL2008 应用程序中使用 Int64/bigint 而不是 Int32/int 的性能损失有多大?

java - 深度克隆 Java 对象(不是 bean)

asp.net-mvc-3 - 使用 ASP.NET 成员(member)提供程序从 MVC3 站点进行 TNS oracle 连接失败

java - toString() 错误,无法解析方法 toString()

mysql - ORDER BY 子句使查询变慢,尽管结果集很小

javascript - asp.net mvc 3 在 javascript 中访问 DateTime 模型属性

c# - 在 C# MVC3 中跨 Controller 重用 session

php - 在 MySQL 和 PHP/Laravel 中处理数百万条数据记录

java - 如何搜索xml中的元素?