pg_trgm

PostgreSQL 🟡 Mid

Dé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

#sgbd#interview#database#postgresql

En entretien

  1. 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.

  2. 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

← → au clavier pour passer d'une fiche à l'autre