Un index d'expression indexe le résultat d'une expression ou d'une fonction appliquée à une colonne, comme lower(email). Il rend utilisables par un index les conditions qui reprennent exactement cette expression, ce que ne permettrait pas un index sur la colonne brute.
Exemple
CREATE INDEX ON clients (lower(email));
SELECT * FROM clients WHERE lower(email) = '[email protected]';