Я думаю, что вы смешиваете разные концепции (что, в свою очередь, может затруднить поиск решения).
Фасетный поиск в основном означает фильтрацию по определенному качеству «предмета». Это качество или свойство могут относиться к категории, к которой оно относится, или к чему-то еще.
Вы можете осуществлять поиск пользователей по фасеткам, где вы фильтруете по возрасту, например,
[ User ]
| name char |
| age int |
Способ настройки Solr (или Sphinx) для получения конечного результата может отличаться, но он не влияет на вашу модель данных.
Я бы начал с концептуализации / моделирования того, что вы пытаетесь представить / сохранить в базе данных. Как вы отображаете это или ищите это позже.
Без лишних деталей, ваш вопрос о том, как другие сайты designed their faceted search
слишком широк и в то же время очень прост: вам просто нужно сгенерировать разные аспекты, основываясь на разных свойствах продуктов; но вы также, кажется, хотите знать, как они смоделировали свою базу данных для хранения информации.