【发布时间】:2014-01-04 11:23:31
【问题描述】:
我正在创建一个电子商务网站,该网站需要一个分面搜索工具,以便客户可以通过与ebuyer.com 和Newegg.com 相同风格的类别和分类来缩小产品搜索范围(见左侧菜单)。
我最初直接潜心设计一个类似于 EAV 结构的数据库(我当时不知道这是什么),这最初看起来很理想,因为我可以创建无限的类别、子类别和其他产品分类(即颜色、尺寸、收件人),客户可以用来查找特定产品。然而,当我开始尝试使用AND 条件创建 SQL 查询时,我意识到普通的简单查询变得更长且编写起来复杂得多。
在花了几个小时阅读 SO 上的各种帖子和 Google 上的文章之后,我开始意识到如果我继续使用这种方法将会是一场噩梦。
问题
ebuyer.com 和 Newegg.com 等网站是如何设计分面搜索的?
我是否错过了另一种方法,或者他们只是继续使用 EAV 结构? 我希望避免使用 Lucene/Solr 等企业解决方案。
【问题讨论】:
标签: database-design data-structures entity-attribute-value faceted-search categorization