Реализовывал на MySQL + Sphinx. Фасетный поиск делается легко через MVA атрибуты. Поле с характеристиками объекта можно задать в JSON формате - в карточке объекта не придется делать лишний запрос на получение этих характеристик. Подробнее о фасетном поиске на сфинксе можно почитать
тут.