Нормально задача решается на RDBMS. Просто нужно описывать не модель хранения продуктов, а модель модели хранения продуктов. Т.е. набор метаданных и автоматического создания скриптов на основе их.
Все равно продукты (точнее новые типы продуктов) добавляться у вас будут реже, чем искаться ( я так понимаю). Так что можно время от времени подстраивать внутреннюю модель автоматом.
В таких системах, кстати, не поиск самое сложное и главное. Там все оптимизируется понятными методами.
Намного сложнее саму базу содержать в актуальном и полном виде. Как этот вопрос решается?