pg_search
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_search | 0.23.0 | FTS | AGPL-3.0 | Rust |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2100 | pg_search | No | Yes | Yes | Yes | No | No | paradedb |
| Related | pgroonga pgroonga_database pg_bestmatch vchord_bm25 pg_bigm zhparser pg_tokenizer pg_trgm |
|---|
bm25 am conflicts with pg_textsearch; PG15-16 require shared_preload_libraries while PG17-18 do not.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.23.0 | 1817161514 | pg_search | - |
| RPM | PIGSTY | 0.23.0 | 1817161514 | pg_search_$v | - |
| DEB | PIGSTY | 0.23.0 | 1817161514 | postgresql-$v-pg-search | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.23.0 el8.x86_64.pg18 : pg_search_18 pg_search_18-0.23.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.23.0 el8.x86_64.pg17 : pg_search_17 pg_search_17-0.23.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.23.0 el8.x86_64.pg16 : pg_search_16 pg_search_16-0.23.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.23.0 el8.x86_64.pg15 : pg_search_15 pg_search_15-0.23.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.20.10 el8.x86_64.pg14 : pg_search_14 pg_search_14-0.20.10-1PARADEDB.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 0.23.0 el8.aarch64.pg18 : pg_search_18 pg_search_18-0.23.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.23.0 el8.aarch64.pg17 : pg_search_17 pg_search_17-0.23.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.23.0 el8.aarch64.pg16 : pg_search_16 pg_search_16-0.23.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.23.0 el8.aarch64.pg15 : pg_search_15 pg_search_15-0.23.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.20.10 el8.aarch64.pg14 : pg_search_14 pg_search_14-0.20.10-1PARADEDB.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 0.22.6 el9.x86_64.pg18 : pg_search_18 pg_search_18-0.22.6-1PARADEDB.el9.x86_64.rpm
| PIGSTY 0.22.6 el9.x86_64.pg17 : pg_search_17 pg_search_17-0.22.6-1PARADEDB.el9.x86_64.rpm
| PIGSTY 0.22.6 el9.x86_64.pg16 : pg_search_16 pg_search_16-0.22.6-1PARADEDB.el9.x86_64.rpm
| PIGSTY 0.22.6 el9.x86_64.pg15 : pg_search_15 pg_search_15-0.22.6-1PARADEDB.el9.x86_64.rpm
| PIGSTY 0.20.10 el9.x86_64.pg14 : pg_search_14 pg_search_14-0.20.10-1PARADEDB.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 0.22.6 el9.aarch64.pg18 : pg_search_18 pg_search_18-0.22.6-1PARADEDB.el9.aarch64.rpm
| PIGSTY 0.22.6 el9.aarch64.pg17 : pg_search_17 pg_search_17-0.22.6-1PARADEDB.el9.aarch64.rpm
| PIGSTY 0.22.6 el9.aarch64.pg16 : pg_search_16 pg_search_16-0.22.6-1PARADEDB.el9.aarch64.rpm
| PIGSTY 0.22.6 el9.aarch64.pg15 : pg_search_15 pg_search_15-0.22.6-1PARADEDB.el9.aarch64.rpm
| PIGSTY 0.20.10 el9.aarch64.pg14 : pg_search_14 pg_search_14-0.20.10-1PARADEDB.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 0.22.6 el10.x86_64.pg18 : pg_search_18 pg_search_18-0.22.6-1PARADEDB.el10.x86_64.rpm
| PIGSTY 0.22.6 el10.x86_64.pg17 : pg_search_17 pg_search_17-0.22.6-1PARADEDB.el10.x86_64.rpm
| PIGSTY 0.22.6 el10.x86_64.pg16 : pg_search_16 pg_search_16-0.22.6-1PARADEDB.el10.x86_64.rpm
| PIGSTY 0.22.6 el10.x86_64.pg15 : pg_search_15 pg_search_15-0.22.6-1PARADEDB.el10.x86_64.rpm
| PIGSTY MISS |
| el10.aarch64 | PIGSTY 0.22.6 el10.aarch64.pg18 : pg_search_18 pg_search_18-0.22.6-1PARADEDB.el10.aarch64.rpm
| PIGSTY 0.22.6 el10.aarch64.pg17 : pg_search_17 pg_search_17-0.22.6-1PARADEDB.el10.aarch64.rpm
| PIGSTY 0.22.6 el10.aarch64.pg16 : pg_search_16 pg_search_16-0.22.6-1PARADEDB.el10.aarch64.rpm
| PIGSTY 0.22.6 el10.aarch64.pg15 : pg_search_15 pg_search_15-0.22.6-1PARADEDB.el10.aarch64.rpm
| PIGSTY MISS |
| d12.x86_64 | PIGSTY 0.22.6 d12.x86_64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d12.x86_64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d12.x86_64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d12.x86_64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_amd64.deb
| PIGSTY 0.20.7 d12.x86_64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_amd64.deb
|
| d12.aarch64 | PIGSTY 0.22.6 d12.aarch64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d12.aarch64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d12.aarch64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d12.aarch64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_arm64.deb
| PIGSTY 0.20.7 d12.aarch64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_arm64.deb
|
| d13.x86_64 | PIGSTY 0.22.6 d13.x86_64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d13.x86_64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d13.x86_64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 d13.x86_64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_amd64.deb
| PIGSTY 0.20.5 d13.x86_64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.5-1PIGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 0.22.6 d13.aarch64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d13.aarch64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d13.aarch64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 d13.aarch64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_arm64.deb
| PIGSTY 0.20.5 d13.aarch64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.5-1PIGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 0.22.6 u22.x86_64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u22.x86_64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u22.x86_64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u22.x86_64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_amd64.deb
| PIGSTY 0.20.7 u22.x86_64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_amd64.deb
|
| u22.aarch64 | PIGSTY 0.22.6 u22.aarch64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u22.aarch64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u22.aarch64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u22.aarch64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_arm64.deb
| PIGSTY 0.20.7 u22.aarch64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_arm64.deb
|
| u24.x86_64 | PIGSTY 0.22.6 u24.x86_64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u24.x86_64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u24.x86_64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_amd64.deb
| PIGSTY 0.22.6 u24.x86_64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_amd64.deb
| PIGSTY 0.20.7 u24.x86_64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_amd64.deb
|
| u24.aarch64 | PIGSTY 0.22.6 u24.aarch64.pg18 : postgresql-18-pg-search postgresql-18-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u24.aarch64.pg17 : postgresql-17-pg-search postgresql-17-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u24.aarch64.pg16 : postgresql-16-pg-search postgresql-16-pg-search_0.22.6_arm64.deb
| PIGSTY 0.22.6 u24.aarch64.pg15 : postgresql-15-pg-search postgresql-15-pg-search_0.22.6_arm64.deb
| PIGSTY 0.20.7 u24.aarch64.pg14 : postgresql-14-pg-search postgresql-14-pg-search_0.20.7_arm64.deb
|
Build
You can build the DEB packages for pg_search using pig build:
pig build pkg pg_search # build DEB packages
Install
You can install pg_search directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_search; # Install for current active PG version
pig ext install -y pg_search -v 18 # PG 18
pig ext install -y pg_search -v 17 # PG 17
pig ext install -y pg_search -v 16 # PG 16
pig ext install -y pg_search -v 15 # PG 15
dnf install -y pg_search_18 # PG 18
dnf install -y pg_search_17 # PG 17
dnf install -y pg_search_16 # PG 16
dnf install -y pg_search_15 # PG 15
apt install -y postgresql-18-pg-search # PG 18
apt install -y postgresql-17-pg-search # PG 17
apt install -y postgresql-16-pg-search # PG 16
apt install -y postgresql-15-pg-search # PG 15
Preload:
shared_preload_libraries = 'pg_search';
Create Extension:
CREATE EXTENSION pg_search;
Usage
pg_search is ParadeDB’s BM25-based search extension for PostgreSQL. The upstream README says support starts at PostgreSQL 15, and the v0.23.0 self-hosted install docs still require preloading the library before CREATE EXTENSION.
Enable And Create The Extension
shared_preload_libraries = 'pg_search'
CREATE EXTENSION pg_search;
The self-hosted extension docs for v0.23.0 describe prebuilt binaries for Postgres 15+.
Create A BM25 Index
Quickstart examples use the bm25 access method with a unique key field:
CREATE INDEX search_idx ON mock_items
USING bm25 (id, description, category, rating)
WITH (key_field = 'id');
The v0.23.0 release also notes newly tunable BM25 k1 and b parameters per field.
Query Operators And Helpers
The current quickstart uses these query operators:
|||: match disjunction, equivalent toterm1 OR term2.&&&: match conjunction, equivalent toterm1 AND term2.
Examples:
SELECT description, rating
FROM mock_items
WHERE description ||| 'running shoes'
ORDER BY rating
LIMIT 5;
SELECT description, pdb.score(id)
FROM mock_items
WHERE description &&& 'running shoes'
ORDER BY score DESC
LIMIT 5;
SELECT description, pdb.snippet(description), pdb.score(id)
FROM mock_items
WHERE description ||| 'running shoes'
ORDER BY score DESC
LIMIT 5;
Notes
The development README points users to the docs site for installation and usage instead of documenting SQL details inline. The quickstart is therefore the authoritative usage surface for current pg_search syntax, and it reflects the post-0.20 API rather than the older @@@ examples still found in some secondary materials.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.