Show HN: Pg_textsearch – BM25 Ranking for Postgres
Show HN (score: 5)Description
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/insert/visual modes, hjkl navigation, dd/yy/p, :w, :q. The usual muscle memory works.<p>It supports CSV/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'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.