pg_search

pg_search

pg_search : Full text search for PostgreSQL using BM25

Overview

ID Extension Package Version Category License Language
2100
pg_search
pg_search
0.21.4
FTS
AGPL-3.0
Rust
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--s-dt-
No
Yes
No
Yes
no
yes
Relationships
Schemas paradedb
See Also
pgroonga
pgroonga_database
pg_bestmatch
vchord_bm25
pg_bigm
zhparser
pg_tokenizer
pg_trgm

PG 17+ does not require dynamic loading

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
0.21.4
18
17
16
15
14
13
pg_search -
RPM
PIGSTY
0.21.4
18
17
16
15
14
13
pg_search_$v -
DEB
PIGSTY
0.21.4
18
17
16
15
14
13
postgresql-$v-pg-search -
Linux / PG PG18 PG17 PG16 PG15 PG14 PG13
el8.x86_64
MISS
PIGSTY 0.20.7
PIGSTY 0.20.7
PIGSTY 0.20.7
PIGSTY 0.20.7
MISS
el8.aarch64
MISS
PIGSTY 0.20.7
PIGSTY 0.20.7
PIGSTY 0.20.7
PIGSTY 0.20.7
MISS
el9.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
el9.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
el10.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
MISS
MISS
el10.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
MISS
MISS
d12.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
d12.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
d13.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.5
MISS
d13.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.5
MISS
u22.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
u22.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
u24.x86_64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
u24.aarch64
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.21.4
PIGSTY 0.20.7
MISS
Package Version OS ORG SIZE File URL
pg_search_18 0.21.4 el9.x86_64 pigsty 49.6 MiB pg_search_18-0.21.4-1PARADEDB.el9.x86_64.rpm
pg_search_18 0.21.4 el9.aarch64 pigsty 49.5 MiB pg_search_18-0.21.4-1PARADEDB.el9.aarch64.rpm
pg_search_18 0.21.4 el10.x86_64 pigsty 49.6 MiB pg_search_18-0.21.4-1PARADEDB.el10.x86_64.rpm
pg_search_18 0.21.4 el10.aarch64 pigsty 49.5 MiB pg_search_18-0.21.4-1PARADEDB.el10.aarch64.rpm
postgresql-18-pg-search 0.21.4 d12.x86_64 pigsty 48.9 MiB postgresql-18-pg-search_0.21.4_amd64.deb
postgresql-18-pg-search 0.21.4 d12.aarch64 pigsty 48.4 MiB postgresql-18-pg-search_0.21.4_arm64.deb
postgresql-18-pg-search 0.21.4 d13.x86_64 pigsty 48.9 MiB postgresql-18-pg-search_0.21.4_amd64.deb
postgresql-18-pg-search 0.21.4 d13.aarch64 pigsty 48.4 MiB postgresql-18-pg-search_0.21.4_arm64.deb
postgresql-18-pg-search 0.21.4 u22.x86_64 pigsty 48.9 MiB postgresql-18-pg-search_0.21.4_amd64.deb
postgresql-18-pg-search 0.21.4 u22.aarch64 pigsty 48.4 MiB postgresql-18-pg-search_0.21.4_arm64.deb
postgresql-18-pg-search 0.21.4 u24.x86_64 pigsty 48.9 MiB postgresql-18-pg-search_0.21.4_amd64.deb
postgresql-18-pg-search 0.21.4 u24.aarch64 pigsty 48.5 MiB postgresql-18-pg-search_0.21.4_arm64.deb
Package Version OS ORG SIZE File URL
pg_search_17 0.20.7 el8.x86_64 pigsty 46.3 MiB pg_search_17-0.20.7-1PARADEDB.el8.x86_64.rpm
pg_search_17 0.20.7 el8.aarch64 pigsty 45.7 MiB pg_search_17-0.20.7-1PARADEDB.el8.aarch64.rpm
pg_search_17 0.21.4 el9.x86_64 pigsty 49.6 MiB pg_search_17-0.21.4-1PARADEDB.el9.x86_64.rpm
pg_search_17 0.21.4 el9.aarch64 pigsty 49.5 MiB pg_search_17-0.21.4-1PARADEDB.el9.aarch64.rpm
pg_search_17 0.21.4 el10.x86_64 pigsty 49.7 MiB pg_search_17-0.21.4-1PARADEDB.el10.x86_64.rpm
pg_search_17 0.21.4 el10.aarch64 pigsty 49.5 MiB pg_search_17-0.21.4-1PARADEDB.el10.aarch64.rpm
postgresql-17-pg-search 0.21.4 d12.x86_64 pigsty 49.0 MiB postgresql-17-pg-search_0.21.4_amd64.deb
postgresql-17-pg-search 0.21.4 d12.aarch64 pigsty 48.4 MiB postgresql-17-pg-search_0.21.4_arm64.deb
postgresql-17-pg-search 0.21.4 d13.x86_64 pigsty 49.0 MiB postgresql-17-pg-search_0.21.4_amd64.deb
postgresql-17-pg-search 0.21.4 d13.aarch64 pigsty 48.4 MiB postgresql-17-pg-search_0.21.4_arm64.deb
postgresql-17-pg-search 0.21.4 u22.x86_64 pigsty 49.0 MiB postgresql-17-pg-search_0.21.4_amd64.deb
postgresql-17-pg-search 0.21.4 u22.aarch64 pigsty 48.4 MiB postgresql-17-pg-search_0.21.4_arm64.deb
postgresql-17-pg-search 0.21.4 u24.x86_64 pigsty 49.0 MiB postgresql-17-pg-search_0.21.4_amd64.deb
postgresql-17-pg-search 0.21.4 u24.aarch64 pigsty 48.5 MiB postgresql-17-pg-search_0.21.4_arm64.deb
Package Version OS ORG SIZE File URL
pg_search_16 0.20.7 el8.x86_64 pigsty 46.3 MiB pg_search_16-0.20.7-1PARADEDB.el8.x86_64.rpm
pg_search_16 0.20.7 el8.aarch64 pigsty 45.7 MiB pg_search_16-0.20.7-1PARADEDB.el8.aarch64.rpm
pg_search_16 0.21.4 el9.x86_64 pigsty 49.6 MiB pg_search_16-0.21.4-1PARADEDB.el9.x86_64.rpm
pg_search_16 0.21.4 el9.aarch64 pigsty 49.5 MiB pg_search_16-0.21.4-1PARADEDB.el9.aarch64.rpm
pg_search_16 0.21.4 el10.x86_64 pigsty 49.6 MiB pg_search_16-0.21.4-1PARADEDB.el10.x86_64.rpm
pg_search_16 0.21.4 el10.aarch64 pigsty 49.5 MiB pg_search_16-0.21.4-1PARADEDB.el10.aarch64.rpm
postgresql-16-pg-search 0.21.4 d12.x86_64 pigsty 49.0 MiB postgresql-16-pg-search_0.21.4_amd64.deb
postgresql-16-pg-search 0.21.4 d12.aarch64 pigsty 48.4 MiB postgresql-16-pg-search_0.21.4_arm64.deb
postgresql-16-pg-search 0.21.4 d13.x86_64 pigsty 49.0 MiB postgresql-16-pg-search_0.21.4_amd64.deb
postgresql-16-pg-search 0.21.4 d13.aarch64 pigsty 48.5 MiB postgresql-16-pg-search_0.21.4_arm64.deb
postgresql-16-pg-search 0.21.4 u22.x86_64 pigsty 48.9 MiB postgresql-16-pg-search_0.21.4_amd64.deb
postgresql-16-pg-search 0.21.4 u22.aarch64 pigsty 48.4 MiB postgresql-16-pg-search_0.21.4_arm64.deb
postgresql-16-pg-search 0.21.4 u24.x86_64 pigsty 49.0 MiB postgresql-16-pg-search_0.21.4_amd64.deb
postgresql-16-pg-search 0.21.4 u24.aarch64 pigsty 48.5 MiB postgresql-16-pg-search_0.21.4_arm64.deb
Package Version OS ORG SIZE File URL
pg_search_15 0.20.7 el8.x86_64 pigsty 46.3 MiB pg_search_15-0.20.7-1PARADEDB.el8.x86_64.rpm
pg_search_15 0.20.7 el8.aarch64 pigsty 45.7 MiB pg_search_15-0.20.7-1PARADEDB.el8.aarch64.rpm
pg_search_15 0.21.4 el9.x86_64 pigsty 49.6 MiB pg_search_15-0.21.4-1PARADEDB.el9.x86_64.rpm
pg_search_15 0.21.4 el9.aarch64 pigsty 49.5 MiB pg_search_15-0.21.4-1PARADEDB.el9.aarch64.rpm
pg_search_15 0.21.4 el10.x86_64 pigsty 49.6 MiB pg_search_15-0.21.4-1PARADEDB.el10.x86_64.rpm
pg_search_15 0.21.4 el10.aarch64 pigsty 49.5 MiB pg_search_15-0.21.4-1PARADEDB.el10.aarch64.rpm
postgresql-15-pg-search 0.21.4 d12.x86_64 pigsty 48.9 MiB postgresql-15-pg-search_0.21.4_amd64.deb
postgresql-15-pg-search 0.21.4 d12.aarch64 pigsty 48.4 MiB postgresql-15-pg-search_0.21.4_arm64.deb
postgresql-15-pg-search 0.21.4 d13.x86_64 pigsty 48.9 MiB postgresql-15-pg-search_0.21.4_amd64.deb
postgresql-15-pg-search 0.21.4 d13.aarch64 pigsty 48.4 MiB postgresql-15-pg-search_0.21.4_arm64.deb
postgresql-15-pg-search 0.21.4 u22.x86_64 pigsty 48.9 MiB postgresql-15-pg-search_0.21.4_amd64.deb
postgresql-15-pg-search 0.21.4 u22.aarch64 pigsty 48.4 MiB postgresql-15-pg-search_0.21.4_arm64.deb
postgresql-15-pg-search 0.21.4 u24.x86_64 pigsty 48.9 MiB postgresql-15-pg-search_0.21.4_amd64.deb
postgresql-15-pg-search 0.21.4 u24.aarch64 pigsty 48.4 MiB postgresql-15-pg-search_0.21.4_arm64.deb
Package Version OS ORG SIZE File URL
pg_search_14 0.20.7 el8.x86_64 pigsty 46.3 MiB pg_search_14-0.20.7-1PARADEDB.el8.x86_64.rpm
pg_search_14 0.20.7 el8.aarch64 pigsty 45.7 MiB pg_search_14-0.20.7-1PARADEDB.el8.aarch64.rpm
pg_search_14 0.20.7 el9.x86_64 pigsty 46.1 MiB pg_search_14-0.20.7-1PARADEDB.el9.x86_64.rpm
pg_search_14 0.20.7 el9.aarch64 pigsty 46.0 MiB pg_search_14-0.20.7-1PARADEDB.el9.aarch64.rpm
postgresql-14-pg-search 0.20.7 d12.x86_64 pigsty 45.6 MiB postgresql-14-pg-search_0.20.7_amd64.deb
postgresql-14-pg-search 0.20.7 d12.aarch64 pigsty 45.0 MiB postgresql-14-pg-search_0.20.7_arm64.deb
postgresql-14-pg-search 0.20.5 d13.x86_64 pigsty 45.1 MiB postgresql-14-pg-search_0.20.5-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-search 0.20.5 d13.aarch64 pigsty 44.5 MiB postgresql-14-pg-search_0.20.5-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-search 0.20.7 u22.x86_64 pigsty 45.6 MiB postgresql-14-pg-search_0.20.7_amd64.deb
postgresql-14-pg-search 0.20.7 u22.aarch64 pigsty 45.0 MiB postgresql-14-pg-search_0.20.7_arm64.deb
postgresql-14-pg-search 0.20.7 u24.x86_64 pigsty 45.6 MiB postgresql-14-pg-search_0.20.7_amd64.deb
postgresql-14-pg-search 0.20.7 u24.aarch64 pigsty 45.1 MiB postgresql-14-pg-search_0.20.7_arm64.deb

Source

pig build pkg pg_search;		# build deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_search;		# install via package name, for the active PG version

pig install pg_search -v 18;   # install for PG 18
pig install pg_search -v 17;   # install for PG 17
pig install pg_search -v 16;   # install for PG 16
pig install pg_search -v 15;   # install for PG 15

Create this extension with:

CREATE EXTENSION pg_search;

THIS EXTENSION is built by ParadeDB team and delivered by the PIGSTY repo

Usage

https://docs.paradedb.com/documentation/getting-started/quickstart

CREATE EXTENSION pg_search;

ALTER SYSTEM SET paradedb.pg_search_telemetry TO 'off';

CALL paradedb.create_bm25_test_table(
  schema_name => 'public',
  table_name => 'mock_items'
);
    
SELECT description, rating, category FROM mock_items LIMIT 3;

CALL paradedb.create_bm25(
        index_name => 'search_idx',
        schema_name => 'public',
        table_name => 'mock_items',
        key_field => 'id',
        text_fields => paradedb.field('description', tokenizer => paradedb.tokenizer('en_stem')) ||
                       paradedb.field('category'),
        numeric_fields => paradedb.field('rating')
     );

SELECT description, rating, category
FROM search_idx.search('(description:keyboard OR category:electronics) AND rating:>2',limit_rows => 5);

CALL paradedb.create_bm25(
        index_name => 'ngrams_idx',
        schema_name => 'public',
        table_name => 'mock_items',
        key_field => 'id',
        text_fields => paradedb.field('description', tokenizer => paradedb.tokenizer('ngram', min_gram => 4, max_gram => 4, prefix_only => false)) ||
                       paradedb.field('category')
     );

SELECT description, rating, category
FROM ngrams_idx.search('description:blue');
Last updated on