Как реализовать фасетную навигацию в интернет магазине?
На еластике это решается так https://project-a.github.io/on-site-search-design-...

на mysql - тоже можно, через запросы с фильтрацией по выбранным значениям в форме и группировкой по атрибутам всех имеющихся значений для товаров. Тут с ростом данных будет проседать время ответа, но это надо оценивать исходя из кол-ва данных на проекте, по которым идет поиск.
Учитывая что товары находятся БД, то обращаясь к фильтру товаров по фасету можно получить нужные product_id при обращении в БД по attribute_id . 
Например через SELECT `product_id` FROM `database` WHERE `attribute_id` = 939;
в MySQL  можно получить и число  затронутых строк и сами товары