В oracle они называются индексами на основе функций.
Для фильтрации вы можете быть хитрым и создать функцию, которая возвращает значение, если фильтр соответствует, или ноль, если это не так. Нули не сохраняются в индексах btree, поэтому индекс по существу фильтруется. Вам просто нужно убедиться, что вы используете ту же функцию в своих запросах.
Я полагаю, что на сервере sql вы можете создать вычисляемый столбец и индексировать его.