【问题标题】:How to implement dynamic categorization / search filters如何实现动态分类/搜索过滤器
【发布时间】:2011-10-19 13:12:15
【问题描述】:

我正在构建一个需要动态类别的网站,例如 ebay 搜索过滤器。能否请您指出正确的方向并向我发送一些有用的链接或想法。

在 ebay 中,左侧的搜索过滤器始终根据产品数据生成。

有什么想法可以实现吗?

非常感谢。

【问题讨论】:

    标签: asp.net sql database search search-engine


    【解决方案1】:

    这是最简单的方法之一:您需要首先标记您的产品。标记本质上是分类,但重要的是您可以将产品分为多个类别(或标签)。

    现在,当搜索产品时,您必须触发相应的标签查询 - 例如,假设三个简单的表:product_master、tag_master 和 product_tag(many_to_many 关系),一个 MS Sql 查询就可以解决问题

    select
      t.tag_name,
      count distinct (pt.product_id)
    from
      tag_master t
      inner join product_tag pt
         on t.tag_id = pt.tag_id
      inner join product p
         on pt.product_id = p.product_id
    Where
      p.name like '%search_term%'
    group by
      t.tag_name
    

    基本上,对于非常产品搜索,您需要触发此类查询。通常,您会匹配数千个标签,因此在进一步分页搜索时缓存查询结果。按标签/类别向下钻取将简单地添加到 where 子句。

    您可以扩展查询以支持标签(或类别)中的层次结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2012-08-12
      • 1970-01-01
      • 2017-04-06
      • 2018-09-29
      • 2019-04-06
      相关资源
      最近更新 更多