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