Как реализовать динамическую категоризацию / поисковые фильтры - PullRequest
1 голос
/ 04 августа 2011

Я создаю веб-сайт, на котором мне нужны динамические категории, такие как фильтры поиска ebay. Можете ли вы указать мне правильное направление и прислать мне несколько полезных ссылок или идей.

В ebay поисковые фильтры с левой стороны всегда создаются на основе данных о продукте.

Есть идеи, как это реализовать?

Большое спасибо.

1 Ответ

0 голосов
/ 04 августа 2011

Вот один из самых простых способов: вам нужно сначала пометить свои продукты. Маркировка - это, по сути, категоризация, но важно, чтобы вы могли распределить продукт по нескольким категориям (или тегам).

Теперь, когда продукт ищется, вы должны запустить соответствующий запрос для тегов - например, предполагая три простые таблицы: product_master, tag_master и product_tag (many_to_many Relationships), 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.

Вы можете расширить запрос на поддержку иерархий в тегах (или категориях).

...