Hybrid retrieval, typed
Keyword full-text, vector similarity, and structured filters combine through reciprocal-rank fusion. You declare the channels in TypeScript; the schema and SQL are generated per project at runtime.
Hybrid retrieval, typed
Keyword full-text, vector similarity, and structured filters combine through reciprocal-rank fusion. You declare the channels in TypeScript; the schema and SQL are generated per project at runtime.
Hard filters stay hard
“Under 20,000” and “available now” compile to typed constraint predicates pushed into SQL — not soft semantic vibes. Every search carries an auditable constraint trace.
Image and intent together
Image similarity, text intent, price, freshness, and availability are separate, query-time-weighted signals. Tune visual vs intent vs price without reindexing.
Two containers in production
Postgres (pgvector + pg_trgm) and your app process. Bring your own embedding and generation models. No Redis, no Elasticsearch, no hosted vector DB.
New to this?
Build a search experience walks from an idea to a working search, in plain language.
Already know what you want?
Quickstart — collection to push to index to search in about fifteen minutes, no LLM required.
Have a store already?
Wire it up: MedusaJS, headless Shopify, or headless WooCommerce.
Want proof?
Eval from search snapshots builds a corpus from real catalogs and scores keyword vs hybrid.