timescale/pg_textsearch

PostgreSQL extension for BM25 relevance-ranked full-text search. Postgres OSS licensed.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 36 minutes ago
Added to GitGenius on September 17th, 2026
Created on July 6th, 2025
Open Issues & Pull Requests: 34 (+0)
GitHub issues: Enabled
Number of forks: 119
Total Stargazers: 3,993 (+0)
Total Subscribers: 8 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 33.0 hours
Mean response time: 12.4 days
90th percentile: 24.7 days
Tracked items: 104

Most active contributors

Sign in to see contributor activity.

How this project is maintained

About 16% of issues opened in the past year have never received a reply. Only 26% of open issues come from outside the core team — the tracker reads mainly as internal planning. Work labelled "bug" is answered fastest, typically in about 6 hours, while "enhancement" waits about 9 days. 78% of issues opened in the past year have been closed, leaving a working backlog. Three people close 96% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 27
New in 7 days: 5
Closed in 7 days: 4
Avg open age: 91 days
Stale 30+ days: 12
Stale 90+ days: 10

Recent activity

Opened in 7 days: 5
Closed in 7 days: 4
Comments in 7 days: 2
Events in 7 days: 5

Top labels

  • bug (37)
  • enhancement (23)
  • performance (12)
  • scope:medium (9)
  • scope:large (5)
  • good first issue (4)
  • developer relations (2)
  • documentation (2)

Detailed Description

pg_textsearch is a PostgreSQL extension that adds BM25 relevance-ranked full-text search to Postgres.

The extension solves the problem of ranking search results by relevance rather than just matching presence or absence of terms. It implements the BM25 algorithm, a probabilistic ranking function widely used in information retrieval. The tool adds a simple `<@>` operator for ordering results by BM25 score, with configurable parameters k1 and b to tune term frequency saturation and length normalization. It supports PostgreSQL text search configurations for language-aware tokenization, and uses Block-Max WAND to accelerate top-k queries without scoring all matching documents. Index builds can run in parallel on large tables.

The extension suits projects that need ranked full-text search within PostgreSQL without external search infrastructure. It works with expression indexes on JSONB fields or multiple columns, partial indexes to search subsets of rows, and multilingual tables through language-specific text search configurations. The tool supports PostgreSQL 17 and 18, with best-effort support for PostgreSQL 19 beta. Pre-built binaries are available for Linux on amd64 and arm64 architectures, and source builds are supported. The README does not compare this tool to alternatives.

The project's issue tracker is maintained primarily by its own members rather than driven by external user reports, suggesting internal prioritization of the roadmap. Maintainers respond to new issues and pull requests within a few days. Work focuses on bugs, enhancements, and performance improvements.