Goal: Eliminate Meilisearch as an infrastructure dependency by replacing it with PostgreSQL full-text search, pg_trgm fuzzy matching, and PostGIS geolocation queries, while maintaining identical API contract for web and mobile clients.
Spec: https://github.com/bacchus-labs/kidcue/issues/172
Architecture: Two-phase search (FTS with weighted tsvector, then pg_trgm fuzzy fallback) with PostGIS for geo queries. Generated stored search_vector column with weighted fields (name A, description/activity_types B, location C). Trigger-maintained location_point geometry column. All queries go directly to PostgreSQL -- no intermediate search service.
Tech Stack: PostgreSQL 16 + pg_trgm + PostGIS 3.5, Drizzle ORM (custom types for tsvector/geometry), raw SQL via Drizzle's sql template tag.