pg_trgm
PostgreSQL 🟡 MidDéfinition
Extension qui fournit la recherche par similarité basée sur les trigrammes. Permet la recherche floue (fuzzy matching) et le LIKE/ILIKE rapide grâce aux index GIN ou GiST.
Analogie
Un correcteur orthographique intégré a ta base de données : il trouve 'PostgreSQL' même si tu tapes 'Postgre'.
Exemple de code
CREATE EXTENSION pg_trgm;
CREATE INDEX idx_trgm ON users
USING gin (name gin_trgm_ops);
SELECT * FROM users
WHERE name % 'Alic'
ORDER BY similarity(name, 'Alic') DESC;
Cas d'usage
Implémenter une barre de recherche tolérante aux fautes de frappe sans Elasticsearch.
Termes liés
En entretien
Explique-moi ce que fait l'extension pg_trgm.
pg_trgm fournit la recherche par similarité basée sur les trigrammes, comme un correcteur orthographique intégré à la base. Elle permet le fuzzy matching et accélère LIKE/ILIKE grâce à des index GIN ou GiST.
Quand l'utiliserais-tu plutôt que de brancher un moteur de recherche externe ?
Pour implémenter une barre de recherche tolérante aux fautes de frappe sans passer par Elasticsearch. pg_trgm suffit quand on veut du fuzzy matching directement dans PostgreSQL.
Fiche mise à jour le 2026-09-27