Я создаю сайт электронной коммерции, который должен иметь фасетный инструмент поиска, чтобы клиенты могли сузить поиск товара по категориям и классификациям в том же стиле, что и ebuyer.com и Newegg.com (см. Меню слева) ,Структура базы данных для факсимильного поиска
Первоначально я нырнул прямо в разработку базы данных, которая оказалась похожей на структуру EAV (я не знал, что это было в то время), это изначально казалось идеальным, поскольку я мог создавать неограниченные категории, подкатегории и другие классификации продуктов (например, цвет, размер, получатель), которые клиенты могут использовать для поиска определенных продуктов. Однако, когда я начал создавать SQL-запросы с использованием условий AND
, я понял, как обычные простые запросы стали намного длиннее и сложными для записи.
Проведя несколько часов, просматривая различные сообщения о SO и статьях в Google, я понял, что кошмар, который будет впереди, если я продолжу этот метод.
Вопрос
Как бы сайты, как ebuyer.com и Newegg.com разработали свой граненый поиск?
Я пропустил альтернативный метод, или они просто пошли вперед с структурой EAV? Я стараюсь избегать таких корпоративных решений, как Lucene/Solr.