§02 · Wine Adore
2024 — 2025
Backend Engineer

Global Catalogue Search.

3
Document types unified
0ms
Fallback overhead
100%
Live pricing accuracy
Overview

A unified search layer across Wine Adore's fragmented product catalogue — wines, events, and restaurants — accessible from a single query input. A custom query parser runs before dispatching to Typesense, extracting structured signals: vintage year (regex on 4-digit tokens), wine type (red / white / rosé / sparkling), and country of origin from a curated dictionary.

Prices are always served live from PostgreSQL rather than the search index, ensuring figures shown to users are never stale from index lag. When Typesense is unreachable, queries route transparently to a Postgres full-text search fallback with no additional latency overhead exposed to the client.

Technical highlights

Query intent parser: vintage extraction (e.g. '2019 Bordeaux'), wine type classification, country disambiguation from a curated dictionary

Typesense handles text relevance; Postgres is the authoritative price source — never indexed into the search cluster

Transparent DB fallback activates on Typesense unavailability — no client-visible error or latency spike

Single API endpoint unifies 3 document collections (wines, events, restaurants) behind a consistent response contract

Stack
FastAPI
Typesense
PostgreSQL