Keyword search fails exactly when shoppers are ready to buy
Traditional search matches strings, not meaning: a typo, a synonym, or a natural-language query returns nothing, and the shopper leaves. Generic recommendations don't help them discover the rest of the catalog.
This solution understands intent, tolerates messy queries, and recommends by context — turning search from a dead end into a conversion engine.
Query → understand intent → rank → recommend
- ✓ Semantic / vector search
- ✓ Typo & synonym tolerance
- ✓ Natural-language queries
- ✓ Similar & complementary recs
- ✓ Merchandising rule overrides
- ✓ Zero-result rescue
- ✓ Embeddings + vector store
- ✓ Claude for query understanding
- ✓ Catalog & inventory sync
- ✓ Ranking with business rules
- ✓ Storefront search API
- ✓ Boost / bury controls
- ✓ Promoted collections
- ✓ Margin-aware ranking
- ✓ Out-of-stock handling
- ✓ A/B tunable relevance
Intent-aware semantic retrieval
Queries and products live in the same vector space, so 'warm jacket for hiking' matches the right items even with no keyword overlap — then business rules re-rank.
from embed import embed_one from store import vector_search, apply_rules def search(q: str, ctx: dict, k: int = 48): vec = embed_one(q) # same space as products hits = vector_search(vec, k=k*2) # semantic recall # Re-rank by margin, stock and merchandising rules return apply_rules(hits, ctx)[:k]
Turn search into your best salesperson
Works well with Catalog Enrichment — clean attributes make search sharper.