68

I just want to know how to install the module pg_tgrm as used in the trigram indexing scheme that allows you to do un-anchored search patterns on an index.

WHERE foo LIKE '%bar%';
Evan Carroll
  • 65,432
  • 50
  • 254
  • 507
Lizardie
  • 813
  • 1
  • 6
  • 8

3 Answers3

84

pg_trgm is an extension, so:

CREATE EXTENSION pg_trgm;

If you get the following error

ERROR: could not open extension control file ".../extension/pg_trgm.control":
No such file or directory"

then you need to install the module for your operating system. For example:

  • Ubuntu/Debian:

      sudo apt install postgresql-contrib
    
  • Redhat/Centos

      sudo dnf install postgresql12-contrib
    
  • Fedora

      sudo dnf install postgresql-contrib
    
  • FreeBSD

      sudo pkg install postgresql12-contrib
    

Of course, "12" can be replaced with whatever version number is appropriate.

ghoti
  • 103
  • 4
Jendrusk
  • 966
  • 7
  • 6
15

1) Log into postgres

psql -U <DB_USERNAME>

2) After you are connected, switch to the DB you want to install the extension for:

\c <DB_NAME>

3) Then install the extension as answered previously:

CREATE EXTENSION pg_trgm;

Installing the extension initially gave me issues because I was not doing step 2. I thought the installation was a global thing but it seems its per DB

Laurenz Albe
  • 61,070
  • 4
  • 55
  • 90
Troy Porter
  • 151
  • 1
  • 2
0

To complete the answer of @Jendrusk for :

  • CentOs system you can also use
yum install postgresql-contrib
Marcello Miorelli
  • 17,274
  • 53
  • 180
  • 320