当前位置: 代码迷 >> 高性能WEB开发 >> 阿里巴巴商品属性筛选功能的效率怎么保证的
  详细解决方案

阿里巴巴商品属性筛选功能的效率怎么保证的

热度:376   发布时间:2012-04-15 18:39:21.0
阿里巴巴商品属性筛选功能的效率如何保证的?
http://search.china.alibaba.com/selloffer/%E7%9B%B8%E6%9C%BA.html
在看问题前,请先看下上面URL里,阿里的筛选区域

每个属性后面都跟一个该属性里匹配到的记录数目,如搜索相机,按品牌属性,索尼(4214)说明一共有索尼品牌,包括相机两关键的词的记录数共有4214条

实现这个功能,其实并不难,可难的是性能如何保证的?阿里的搜索都是一点就出来了,响应很快

"相机"这个关键词的筛选属性还算少的,也有四五十个. 有些关键词,都有上百个

我想到的方案是

产品信息表中,品牌这些属性就是一个字段,然后查询时直接用groupby这个字段进行统计,
再就是产品详细信息的查询执行与各个属性的groupby统计均采用并行查询,这样总的时间可以缩短不少,但是估计效率还是没有阿里这么快的响应.
问题:

1、groupby对于这么大的数据量的系统来说,即使建了索引应该也不会有这么快的响应速度
2、仔细研究他们的搜索结果页面后,发现上面的统计和下面的搜索结果并非完全一致,有时上面显示有2条,结果只一条。但这种情况很少,具体是什么原因,有可能是这两块的查询不是访问同一个地方,一般搜索查询是用全文检索即类似于搜索引擎的做法,通过中文分词、相关度等技术进行检索的。而这种检索方式基本都是布尔检索,而统计应该不行,如果用检索方式进行统计,必须并行那么多子类别,那样并行的进程N多,这种方式好像不太可取

请大家指点



------解决方案--------------------
忘掉数据库吧,这么大规模的系统,数据库基本上是死路一条。

数据不一致证明了这一点。^_^
------解决方案--------------------
他的实现,我们是没法知道的。但是如果你打开页面的时候,他就加载了一些东西,保存到你本机上呢? 这样不就会快很多吗,只是开始打开的时候有点慢,自己去试试。
------解决方案--------------------
应该不是直接查数据库,而是用到了搜索引擎
------解决方案--------------------
他的服务器很好的
------解决方案--------------------
数据库设计不是这么容易好弄的。