The archive · Developer & Business Tools · Product decision · 2026
pg_textsearch: Timescale bets BM25-ranked search belongs inside Postgres
Timescale released pg_textsearch, a Postgres-licensed BM25 full-text search extension; it hit 203 HN points at launch and 4,000+ GitHub stars by September 2026.
Timescale
What the business is
pg_textsearch is Timescale's open-source PostgreSQL extension for BM25 relevance-ranked full-text search: a bm25 index type queried with ORDER BY syntax, configurable k1/b ranking parameters, top-k Block-Max WAND optimization, parallel builds and expression and partial indexes, licensed under the PostgreSQL license.
How it started
pg_textsearch appeared on 2026-03-31 as a v1.0 Show HN from the timescale GitHub org with the pitch 'Modern ranked text search for Postgres'. The original codename was Tapir — 'Textual Analysis for Postgres Information Retrieval' — and the extension ships BM25 ranking, PostgreSQL text-search configurations (english, french, german and more), expression indexes for JSONB and multi-column fields, and partial indexes for scoped and multilingual search.
What happened
In the launch thread the Timescale engineer posting as tjgreen called v1.0 the GA line and said hybrid search was 'one of the main current use cases we had in mind developing the extension', while commenters asked when it would reach Supabase, AWS Aurora, Alloy, Azure and GCP Cloud SQL. The thread's licensing debate pitted the extension's permissive PostgreSQL license against ParadeDB's AGPL. By the 2026-09-03 commit the project was at v1.5.0-dev and the README documented chunked tokenization, zhparser-based Chinese search, compression, and memtable and compaction controls alongside the original feature set.
How it ended up
As of 2026-09-05 the extension is live and expanding: v1.5.0-dev marked production ready, prebuilt binaries for PostgreSQL 17 and 18 on Linux and macOS, and a GitHub discussion and PR pipeline taking feature requests. No revenue or hosted-service figures appear in the material.
Background
pg_textsearch is an open-source PostgreSQL extension from Timescale that adds BM25 relevance-ranked full-text search as a native index type. A developer writes ORDER BY content <@> 'search terms' and Postgres returns documents ranked by BM25, with configurable k1 and b parameters, PostgreSQL text-search configurations for stemming and stop words, expression indexes over JSONB fields, partial indexes, partitioned-table support and Block-Max WAND top-k optimization. The project is licensed under the PostgreSQL license and was originally codenamed Tapir.
The bet is that ranked search is a database feature, not a separate product. Timescale shipped it as permissive open source under its own GitHub org and aimed it squarely at the workload that pulls search engines out of the application database: hybrid retrieval, where BM25 keyword results and vector embeddings are combined for RAG. The launch thread called hybrid search 'one of the main current use cases we had in mind developing the extension', and its filtering semantics are modeled on pgvector so Postgres users keep one query mental model.
The extension launched as a v1.0 Show HN on 2026-03-31, drew 203 points and 56 comments, and grew to 4,000+ GitHub stars with 304 commits by the 2026-09-03 crawl, when the README marked v1.5.0-dev production ready. Thread comments asked managed Postgres providers to adopt it, and debated its permissive license against ParadeDB's AGPL. The material records no revenue or hosted-service numbers, so the commercial test of the bet is still open.
What has to be true
- Postgres tsvector finds documents but cannot rank them across a corpus, so relevance search has meant standing up Elasticsearch or another engine; an index type removes that second system.
- The permissive PostgreSQL license answers the objection that blocked AGPL alternatives in managed clouds and in businesses that cannot take on copyleft.
- Hybrid vector-plus-keyword retrieval for RAG is the wedge workload: it gives every AI application a reason to keep search inside the same database as its embeddings.
- Being the missing primitive in Postgres turns distribution into gravity — 4,000+ GitHub stars in about five months — while every managed Postgres user is a potential Timescale customer.
What can be applied
To open an infrastructure category, ship the missing primitive as permissive open source beside your main product — it becomes the default answer, and every user is a potential database customer.
Aftermath
As of 2026-09-05 pg_textsearch is live and actively developed: the README marks v1.5.0-dev production ready, releases ship prebuilt binaries for PostgreSQL 17 and 18 on Linux and macOS, and the docs cover expression and partial indexes, zhparser Chinese support and background-compaction controls. The repo carries 4,000+ stars and 115 forks, and launch-thread requests for managed-provider availability remain open. No revenue or hosted-service figures appear in the material, so the commercial test of the bet is still open.
Sources
- Show HN: Postgres extension for BM25 relevance-ranked full-text search
- timescale/pg_textsearch — Modern ranked text search for Postgres
spotted an error? The archive wants to know.
Your turn
You just read one. Describe what you are building, and see who is betting on the same thing.
Free account · 3 free questions · no card