7 / 10
Где в каскаде применять жёсткие фильтры: доступность, регион, возрастные ограничения, уже виденное?
Жёсткие ограничения применяются как можно раньше и обязательно до отдачи пользователю, но способ зависит от мощности фильтра. Ограничения с малой избирательностью (регион, язык) встраивают в сам индекс через раздельные срезы или фильтрацию при поиске. Быстро меняющиеся (наличие на складе, цена) применяют после отбора, потому что вшивать их в индекс — значит перестраивать его постоянно. Персональные (уже виденное, скрытые пользователем) применяют после отбора по данным сессии. Главное правило: отбирать надо с запасом, иначе после фильтрации выдача окажется короче требуемой.