Tin: full-text search for Postgres(planetscale.com)
225 points by ksec 24 days ago | 95 comments
tl;dr: TIN is a new Postgres full-text search extension that uses Postgres ctids directly as document identifiers (rather than sequential IDs like ParadeDB or pg_textsearch), enabling two-level bitmap encoding that fits into AVX2/AVX-512 registers for vectorized intersection/union operations. Benchmarks show TIN delivering 8–500× higher throughput than ParadeDB, pg_textsearch, and Postgres GIN across conjunction, disjunction, phrase, and count queries, while also avoiding segment renumbering during merges and integrating cleanly with MVCC via visibility-map intersections.
HN Discussion:
  • •The proliferation of Postgres FTS extensions reflects AI-driven coding productivity trends
  • ↓Built-in Postgres FTS (tsvector/tsquery) is already sufficient; why use unofficial extensions
  • ↓TIN and similar extensions lack important features like multi-language/CJK support and stemming
  • ~External Lucene indexes are preferable to in-database FTS due to impedance mismatch
  • ↓Concerns about naming collision with PostGIS TIN data type