【发布时间】:2014-06-10 19:36:20
【问题描述】:
有没有办法在没有 solr、lucene 等的情况下进行分面搜索。只有 php、MySQL 和 Javascript。我正在尝试在分类广告网站上实施,但失败了。问题是尝试过滤属性表时。结构如下:
表格项目:
id description user_id
1 my car 3
2 dream car 3
3 New car 3
4 Old car 4
表元字段:
id meta name
1 Make
2 Model
3 Color
4 Car Type
5 Interior Color
表格项元:
item_id field_id meta_value
1 1 BMW
1 2 3Series
1 3 White
1 4 Coupe
1 5 Black
2 1 BMW
2 2 2Series
2 3 Black
2 4 Coupe
2 5 Grey
3 1 Honda
3 2 Civic
3 3 Red
3 4 Sedan
3 5 Black
现在我想过滤是否有人选择 Black BMW,但如果我使用 IN,它会给出全黑或 BMW。但我希望与 AND 条件相同。 如果您知道分面搜索,那么您可以轻松了解我的意思。我想对上面的表结构做同样的查询。
**Addition:**
我还需要显示搜索和列出的每个属性的计数。喜欢:
Make:
BMW (2)
Color:
Black(2)
White(1)
...
Car Type:
....
Interior Color:
...
【问题讨论】:
-
发布您的 SQL。但从设计的角度来看,对于分面搜索,您应该为每个属性(品牌、型号、颜色)设置一个表,否则您将多次自行加入表项元数据。
-
@OscarM。我正在使用 UI 添加属性。允许用户添加/删除表是一种好习惯吗?在添加/删除或编辑属性时?我不知道所以请指导我。
标签: php mysql faceted-search