阿里巴巴商品属性筛选功能的效率如何保证的?

funboy88 2009-11-25 12:03:41
http://search.china.alibaba.com/selloffer/%E7%9B%B8%E6%9C%BA.html
在看问题前,请先看下上面URL里,阿里的筛选区域

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

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

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

我想到的方案是

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

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

请大家指点

...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjw100 2009-12-25
  • 打赏
  • 举报
回复
数据库设计不是这么容易好弄的。
dld11111 2009-12-25
  • 打赏
  • 举报
回复
他的服务器很好的
hxpandjava 2009-12-22
  • 打赏
  • 举报
回复
应该不是直接查数据库,而是用到了搜索引擎
iisbsd 2009-11-26
  • 打赏
  • 举报
回复
忘掉数据库吧,这么大规模的系统,数据库基本上是死路一条。

数据不一致证明了这一点。^_^
youjianbo_han_87 2009-11-26
  • 打赏
  • 举报
回复
他的实现,我们是没法知道的。但是如果你打开页面的时候,他就加载了一些东西,保存到你本机上呢? 这样不就会快很多吗,只是开始打开的时候有点慢,自己去试试。
funboy88 2009-11-25
  • 打赏
  • 举报
回复
没人指点......

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧