Home / Companies / PlanetScale / Blog / Post Details
Content Deep Dive

Introducing TIN: full-text search for Postgres

Blog post from PlanetScale

Post Details
Company
Date Published
Author
-
Word Count
3,482
Company Posts That Month
6
Language
English
Hacker News Points
-
Post removed?
No
Summary

TIN, or Text INdex, is a generally available PostgreSQL extension for Postgres and Neki databases that provides full-text search through a simple index and query syntax while supporting Boolean, phrase, span, fuzzy, wildcard, regex, case- and accent-insensitive searches, BM25 ranking, exact counts, transactional visibility, updates, backups, replication, joins, and complex filters. Its developers position it as addressing capabilities and operational requirements not fully covered by PostgreSQL GIN, ParadeDB, or pg_textsearch, with examples spanning ranked product search, unranked legal discovery, and tag-counting applications. Benchmarks on a 150-million-document, 85 GB Stack Exchange corpus found that TIN built its index in about eight minutes using 32 GB RAM and, across tested workloads, delivered substantially higher throughput, lower p99 latency, and less data read per query than competing extensions; some alternatives could not complete certain workloads because of memory limitations or restricted query support. The extension’s design uses PostgreSQL’s native ctid tuple locations as document identifiers rather than maintaining separate sequential IDs, enabling compressed two-level bitmap postings, vectorized CPU operations, direct heap-order row access, and avoidance of identifier-mapping overhead. TIN also integrates MVCC visibility handling, VACUUM-driven liveness bitmaps, and background segment promotion and merging, with its ctid-based structure intended to reduce the rewriting, recompression, and write amplification commonly required when search-index segments are merged.

Trends Found in this Post

No tracked trend matches for this post yet.

Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.