➔ Hybrid search (lexical + vector + AI) ➔ Personalization ➔ Many channels ➔ Open : Merchants & agencies need power to adapt ➔ Sovereign : Product discovery data is sensitive Modern Product Discovery is complex — and must stay in control.
from user-contributed configuration (compiled, real-time) ➔ No need to write repetitive classes or code ➔ Consistent request/response ➔ API-first delivery ➔ Adaptability to data changes API stitching turns configuration into a full GraphQL API with no repetitive boilerplate.
algorithm was born in 1976 → ”nike shoes” → display exact matches ➔ Vector search : allowing semantic matching → ”ski outfit” → matches “ski jacket”, “ski pants”, “ski helmet” … ➔ Conversational search : real-life shopping experience with an agent → ”i’ll do my first trail soon, help me finding shoes” ➔ All combined when needed + taking rule-based ranking into account Modern search is hybrid — and Symfony allows assembling the right strategy.
the query → Synonym Service rewrites if needed → Spellchecker Service dispatch the proper query type with a pre-flight analysis → forges an “exact match” query if possible : specific analyzers, tokenizers, etc… → forges a “fuzzy match” query either : deal with typo tolerance → Ranking Applier Service inject the scoring according to business configuration → Query is executed on Elasticsearch / Opensearch → If no results are found, it’s automatically replayed with Vector Search enabled → Results are returned to the end-user, ranked as the merchant wishes. Symfony logic decides how to execute the query, not the developer.
all channels ➔ API-first architecture (Symfony + API Platform) ➔ Real-time synchronization with Catalog data ➔ Consistent experience on web, mobile, kiosk, POS, marketplaces One engine. All channels. Same logic everywhere
logic everywhere Vendor tablet in physical shop End User Your cloud ecosystem A chatbot agent GraphQL GraphQL or REST Frontend E-Commerce App Index omnichannel data and leverage on cloud based features Frontend app
➔ AI transforms natural language into valid GraphQL queries ➔ Symfony exposes “knowledge APIs” to guide the AI : → Reduces hallucination by giving structured business knowledge to the LLM → Merchants business rules remain applied ➔ Search execution stay in the Gally backend : → Predictable results AI generates the query. Symfony validates and executes it.
executes it. 3. Summarize user needs & generate the GraphQl query : "query": { "text": "screw", "size": "2" } LLM 4. Execute the query and get screws of good size, from the Fisher brand promoted by the merchant, and in stock. 1. Explain his needs : “which screws should I use for hanging a mirror in my bathroom ?” End User 2. Retrieve structured knowledge about screws in merchant catalog : - sizes = 2”, 4”, 5” - material : concrete, sandwall Python AI Agent 5. Sees relevants, in stock but merchandized screws Merchant 0. Promote products : - in stock - brand Fisher
top of Symfony enabled: ➔ Faster onboarding for merchants, fewer PHP custom developments ➔ Business teams empowered to change relevance without developers ➔ Lower total cost of ownership compared to SaaS competitors ➔ Smooth transition from classical search → hybrid AI search ➔ All while staying Open Source and Sovereign Symfony is a powerful foundation for building future-proof AI-driven software.