What Was That?
An evidence-first hybrid recall search engine designed to identify half-remembered movies, TV shows, songs, books, and games from fragmented scene descriptions, motifs, or lyrics.
How Messy Memories Turn Into Accurate Matches
Traditional databases fail when users don't remember the exact title. Here is how our hybrid retrieval pipeline scores fragmented user memory queries against media records:
"A dream heist movie where people enter subconscious levels and a spinning top matters"
Matched clues: dream-sharing technology, multi-level heist, subconscious totem, spinning top physics.
"A cozy farming game where you inherit your grandfather's overgrown plot in a small valley town"
Matched clues: grandfather inheritance, farm restoration, crops & animal husbandry, Pelican Town community.
"A sad acoustic folk-rock ballad about driving fast at night to escape working-class poverty"
Matched clues: fast car motif, night driving, escaping poverty, acoustic folk ballad.
"A dystopian novel with thought police, 24/7 surveillance, and Big Brother controlling reality"
Matched clues: Thought Police, Big Brother surveillance, Oceania regime, Winston Smith rebellion.
Search with Half-Remembered Clues
Type anything you remember—a scene, character totem, plot twist, or vibe. The engine extracts intent and ranks results by clue overlap.
System Architecture & Retrieval Pipeline
Unlike standard keyword search or raw vector cosine lookups, "What Was That?" solves vague recall queries using a multi-stage retrieval architecture designed for high precision without hallucination risk.
Query Intent & Pre-Filtering
Requests hit the Flask API gateway (/api/search), where query terms are parsed to classify intent, detect media scope constraints (e.g. "a song", "that novel"), and sanitize filters to protect index boundaries.
- Mode switching (Recall vs. Discover)
- Type constraint enforcement
Hybrid Typesense Retrieval
Queries are matched against the active media_current alias in Typesense using balanced hybrid search. BM25 keyword matching catches exact character names, while 384-dimensional vector embeddings capture abstract thematic concepts.
- Built-in embedding model
- Atomic alias rotation & rollback
Evidence Scoring & Explanation
Results are projected with transparent evidence chips explaining *why* each record matched—such as matched keywords, thematic resonance, or visual motif overlap—giving the user instant clarity.
- Highlight snippet scoring
- Zero-LLM instant latency
# 1. Validate the curated multimodal catalog
python -m flask catalog validate data/media.jsonl
# 2. Build index schema with hybrid embedding model
python -m flask catalog create-index --name media_v1
# 3. Import normalized records and warm vectors
python -m flask catalog import --collection media_v1 data/media.jsonl
# 4. Atomically point the media_current alias
python -m flask catalog activate --collection media_v1