Генератор наборов по нескольким параметрам. Какие инструменты использовать?
Задача
Сгенерировать набор из 5-10 позиций по нескольким параметрам (a, b и c).
Сам сайт написан на PHP (Yii2), все позиции лежат в БД (MySQL). Генератор — это некий сервис, который расположен на сайте.
Например, пользователь указывает допустимые значения для параметров:
a: 150-200
b: 50-70
c: 200-240
И даны позиции, у которых указаны эти параметры. Например, товар1 — a: 10, b: 3, c: 35.
Надо подобрать 5-10 позиций (в зависимости от того, сколько укажет пользователь), чтобы итоговая сумма по параметрам укладывалась в заданные пределы.
Решение в лоб
В принципе, обычными циклами с проверками это можно сделать. Однако, это может весьма нагружать сервер, а также медленно работать, если каждый раз дергать базу для получения нового товара. А если выгружать все позиции для перебора их в PHP, то скрипт будет отжирать много памяти.
Позиций планируется на данный момент около 1 тыс, в дальнейшем — больше. Также позиции товаров будут собираться в наборы, которые также могут выдаваться в результате работы генератора.
Суть вопроса
Интересует, какие технологии можно задействовать, чтобы для пользователя генератор отрабатывал за 3-5 секунд, выдавая необходимые комбинации.
Возможно, это некая типичная задача, у которой есть несколько типовых решений — что стоит гуглить в таком случае?
И еще...
PS. В генераторе помимо указанных будет еще несколько условий.