在执行搜索时加快产品过滤器的计算

时间:2013-05-16 01:34:24

标签: database performance

我试图找到一种有效的方法或算法来帮助我解决下面描述的问题。

假设我们有一个包含大量产品的数据库。每个产品都有一大组属性,尽管这些属性可以在产品之间共享。另外,产品被组织成多个层次类别。 一个例子:主页 - >厨房 - >洗碗机 - > GE电动洗碗机型号blablabla。

我想向浏览我们产品的用户展示他可以使用的可能过滤器列表。为了说明它,请考虑页面侧面的亚马逊产品过滤器:如果产品具有“价格”属性,那么它们会显示价格较低且价格最高的滑块。如果属性是“品牌”,则它们具有所选类别的所有孩子的所有品牌的列表。类别和属性是我们设计中的两个独立概念。

我的问题是所有计算这些过滤器都需要时间,因为我们拥有大量具有许多属性的产品。有没有特定的方法来执行此过滤?我正在考虑事先计算每个级别的所有过滤器,但由于用户可能会在更高的类别中应用过滤器并继续导航到更具体的类别,因此无论如何都需要重新计算/更新后面的类别。

我们尝试了什么:对于所选类别中的每个产品,我们计算属性的交集并基于它创建过滤器。结果不会被缓存,因为过滤器在应用时会从父类传播到子类别。

PS:我使用的数据库是SQL server 2012.如果需要更多信息来更好地回答/理解我的问题,请告诉我。此外,如果您想到更适合此问题的标签,请随时更新。

0 个答案:

没有答案