我想建立一个类似于 ebay 的网站(它的迷你版本,使用 LAMP 堆栈作为基本设置,我猜或者也许你们会建议其他东西),我想知道他们是如何构建他们的系统的。我最不明白的部分是他们如何管理他们的类别。他们有一个搜索代码,可能还有一个用于发布待售商品的代码以及一个用于显示商品的代码。但他们如何为每个类别创建/存储模板呢?另外,他们的设置背后的数据库结构是什么?最后,他们有如此多的类别和子类别,假设有人在里面发布了一个项目(这很可能是 eBay 用于添加类别的过程) 电机 -> 零件和配件 > 赛车零件
几天后,人们在“赛车零件”下请求更多子类别:
所以现在他们有了一个新的赛车零件级别,如下所示:
在添加新子类别之前已发布的现有列表会发生什么情况?他们会被转移到子类别吗?eBay 是否会强制在子类别中列出新商品并删除“赛车零件”的旧发布表单?如果他们这样做了,如果用户缺少一个类别怎么办,用户可能会感到困惑而不会发帖,然后 eBay 就会赔钱。如果他们不删除通用的赛车零件发布表单,那么用户将在过于通用的类别中发布帖子,现在使用“优化搜索”选项将变得困难,因为所有表单都有 eBay 可以过滤的不同字段经过。
如果你们有任何想法,请告诉我。我真的很困惑他们是如何做到的,并且真的很想了解:)
他主要讲的是可扩展性、可用性、可管理性等。Schema 是你必须根据你的具体需求自己设计的东西。 幻灯片
从他的聊天记录来看
“它甚至是一个关系数据库,或者它真的不同吗?
这是非常不同的。它是像 Google 或 Yahoo! 这样的搜索引擎。由开发 AltaVista 搜索引擎的同一个人开发,并且与许多搜索引擎一样,它的开发原理相似,即它是倒排索引。有一组带有 ID 的文档,关键字被索引到这些文档中,查询操作通过这些关键字的交叉列表或向量进行,非常简单,并且有更多关于其工作原理的详细信息。顺便说一句,eBay 式搜索引擎面临的挑战是,我们的用户期望搜索引擎能够基本上近乎实时地更新。当有人对改变价格的商品出价时,价格是人们非常有兴趣查询的过滤器。所以这实际上意味着这种风格——那种经典的网络搜索引擎风格“你以一种批处理模式构建索引,然后将其上传到搜索引擎”对我们来说并不真正有效。它需要更加实时。因此,我将在异步部分稍微讨论一下实时系统如何工作,但无论如何,为了完成搜索可扩展性的想法,想法是搜索引擎可以水平拆分。因此,无论大小如何,总搜索索引都会存在。我们将其分成十个、二十个、六十个或一百个块,并以这种方式划分基础设施。然后我们有一个聚合器部分,它现在确实可以分散/聚集索引的所有不同部分。因此,有人查询“iPod”或“米老鼠”或“Wii”,聚合器将查询发送到每个不同的分割或分片,并获取结果并聚合它们并将它们发送回用户。”
| 归档时间: |
|
| 查看次数: |
5702 次 |
| 最近记录: |