Show HN: Pg_textsearch – BM25 Ranking for Postgres

Show HN (score: 5)
Found: October 23, 2025
ID: 2058

Description

Database
Show HN: Pg_textsearch – BM25 Ranking for Postgres I built pg_textsearch, a Postgres extension that brings proper BM25 ranking to full-text search. It's designed for AI/RAG workloads where search quality directly impacts LLM output.

Postgres native ts_rank lacks corpus-aware signals (no IDF, no TF saturation, no length normalization). This causes mediocre documents to rank above excellent matches, which matters when your LLM depends on retrieval quality.

Quick example:

  CREATE EXTENSION pg_textsearch;
  CREATE INDEX articles_idx ON articles USING bm25(content);
  SELECT title, content <@> to_bm25query('database performance', 'articles_idx') AS score
  FROM articles
  ORDER BY score
  LIMIT 10;
Works seamlessly with pgvector or pgvectorscale for hybrid search. Fully transactional (no sync jobs). Preview release uses in-memory architecture (64MB default per index); disk-based segments coming soon.

I love ParadeDB's pg_search but wanted something available on our managed Postgres. You can try pg_textsearch free on Tiger Cloud: https://console.cloud.timescale.com

Blog: https://www.tigerdata.com/blog/introducing-pg_textsearch-tru...

Docs: https://docs.tigerdata.com/use-timescale/latest/extensions/p...

Feedback welcome, especially from folks building RAG systems or hybrid search applications.

More from Show

Show HN: A terminal spreadsheet editor with Vim keybindings

Show HN: A terminal spreadsheet editor with Vim keybindings While speccing out this spreadsheet tool, I realized that I never had to think about the keybindings. It all just came naturally from Vim. Normal&#x2F;insert&#x2F;visual modes, hjkl navigation, dd&#x2F;yy&#x2F;p, :w, :q. The usual muscle memory works.<p>It supports CSV&#x2F;TSV import and export, and a native .cell format that preserves formulas. The formula engine handles SUM, AVERAGE, COUNT, MIN, MAX, and IF with range references.<p>The codebase is a Cargo workspace: a pure cell-sheet-core library (no TUI dependency) and a cell-sheet-tui crate on top of ratatui. Early days, but it&#x27;s usable.<p>To try it out: cargo install cell-sheet-tui<p>Feedback of any kind is greatly appreciated!

No other tools from this source yet.