Вот сразу вспомнилось, примерно похоже на мою задачу:
Яндекс.Маркет подбор мобилок
Взгляните на панель справа, дофига всяких критериев выбрать можно и работает очень быстро. Как делаются подобные штуки? Какие подходы используются, устройство базы данных? В идеале нужен некий универсальный механизм, который мог бы искать по любому произвольному очень большому набору критериев, по огромному количеству объектов (>100 000) с разным набором полей, делать это максимально быстро, по возможности обходясь без over 9000 серверов.