E-commerce22 min

Recherche Semantique IA pour Catalogue E-Commerce : Architecture Complete avec Symfony, React et Sylius

Par Pierre-Arthur Demengel
Recherche semantiqueEmbeddingsQdrantSyliusE-commerce IA

La recherche sur un catalogue produit ne peut plus se contenter de comparer des chaines de caracteres. Un client qui tape « tenue elegante pour un mariage en bord de mer » n'obtiendra aucun resultat pertinent si votre moteur cherche uniquement les mots « tenue », « elegante », « mariage » et « bord de mer » dans les titres de vos fiches. La recherche semantique pilotee par l'intelligence artificielle resout ce probleme en comprenant l'intention derriere chaque requete.

Pourquoi la recherche par mots-cles ne suffit plus

La recherche traditionnelle, qu'elle utilise MySQL FULLTEXT, Elasticsearch ou Algolia en mode lexical, repose sur un principe simple : faire correspondre les tokens de la requete avec ceux des documents indexes. Ce modele echoue dans trois cas de figure qui representent pourtant une part croissante des requetes e-commerce.

  • Les synonymes et les variations linguistiques. Un utilisateur cherche « sneakers », mais votre catalogue parle de « baskets » ou de « chaussures de sport ». Sans un dictionnaire de synonymes exhaustif, maintenu manuellement, le rappel est nul.
  • Le fosse d'intention. Une requete comme « idee cadeau pour ma mere qui aime la randonnee » n'a aucun chevauchement lexical avec les descriptions produits. L'utilisateur exprime un besoin conceptuel qui exige une comprehension du sens.
  • Les requetes longue traine qui aboutissent trop souvent a une page de resultats vide, alors que le produit ideal existe bel et bien dans le catalogue.

Ce qu'est reellement une recherche semantique IA

La recherche semantique par IA ne se contente pas de tokeniser et d'apparier. Elle projette la requete et chaque produit dans un espace vectoriel de plusieurs centaines de dimensions ou la proximite spatiale encode la similarite de sens. Concretement, un modele de langage, appele modele d'embeddings, convertit un texte en un vecteur de nombres reels. Deux textes qui parlent de la meme chose, meme avec des mots differents, produiront des vecteurs proches selon une mesure de similarite cosinus.

Cette approche transforme radicalement l'experience de recherche. Le moteur comprend qu'une « robe de soiree bleue pas chere » et une « tenue de cocktail bleu marine a petit prix » designent la meme intention. Il tolere les fautes d'orthographe, les formulations approximatives et peut meme traiter des requetes multilingues sans que le catalogue soit traduit.

Architecture technique complete

La mise en place d'une recherche semantique IA repose sur quatre couches distinctes, chacune avec ses choix technologiques.

La generation des embeddings : le coeur du systeme

Le modele d'embeddings est la piece maitresse. Deux voies s'offrent a vous.

D'un cote, les API cloud comme OpenAI text-embedding-3-small ou text-embedding-3-large. Le modele text-embedding-3-small coute 0,02 dollar par million de tokens, soit quelques centimes pour des centaines de milliers de produits. Pour un catalogue d'un million de produits, le cout total d'indexation initiale est inferieur a 10 dollars.

De l'autre, les modeles open source que vous hebergez sur votre propre infrastructure, comme multilingual-e5-base (768 dimensions) ou all-MiniLM-L6-v2 (384 dimensions). L'avantage est l'absence de cout recurrent a l'usage et la confidentialite des donnees. Le compromis est une qualite semantique legerement inferieure et la necessite de gerer un service GPU ou CPU supplementaire.

La recommandation : commencer par l'API cloud pour la simplicite, puis basculer vers un modele auto-heberge si les volumes rendent le cout prohibitif ou si la confidentialite l'exige.

La base de donnees vectorielle : Qdrant en tete

Une base vectorielle permet de stocker et d'interroger des millions de vecteurs avec une latence de l'ordre de la milliseconde. Qdrant se distingue comme le choix optimal pour le e-commerce :

  • API REST simple et bien documentee
  • Scalabilite horizontale via sharding natif
  • Filtrage avance par metadonnees, indispensable pour combiner recherche semantique et filtres e-commerce (prix, categorie, disponibilite)
  • Algorithme HNSW (Hierarchical Navigable Small World) pour une recherche en moins de 10 ms

Alternatives viables : Weaviate (capacites hybrides natives), Milvus (tres gros volumes, architecture distribuee) ou Pinecone (solution managee sans infrastructure a gerer).

Le moteur de recherche et l'integration Symfony

Le backend Symfony orchestre l'indexation et la recherche. Le pipeline d'indexation fonctionne ainsi :

  1. Un listener Doctrine sur les evenements postPersist et postUpdate detecte toute modification de produit.
  2. Il collecte les attributs textuels pertinents (nom, description, marque, categories, attributs personnalises), les nettoie et les concatene.
  3. Ce bloc est envoye a l'API d'embeddings pour vectorisation.
  4. Le vecteur resultant, accompagne des metadonnees structurees (SKU, prix, URL image, categorie), est upserte dans Qdrant.

Cote recherche, le endpoint /api/search recoit la requete utilisateur, genere l'embedding, interroge Qdrant avec similarite cosinus + filtres metier, puis enrichit la reponse avec les donnees completes depuis le repository Sylius.

Pour une integration rapide avec differents moteurs, le bundle SEAL (cmsig/seal-symfony-bundle) offre une couche d'abstraction unifiee pour Elasticsearch, OpenSearch, Meilisearch, Algolia et Typesense.

L'interface React : instantaneite et pertinence

Le frontend React consomme l'API de recherche avec un hook personnalise qui gere l'etat de chargement, la pagination et les filtres. Le composant de barre de recherche utilise un mecanisme de debounce a 200 ms pour lancer la recherche des que l'utilisateur a fini de taper, sans surcharger l'API.

L'affichage des resultats combine une grille de produits avec des filtres dynamiques, des suggestions de requetes similaires et, en option, une section « Les clients ont aussi cherche » generee par similarite cosinus entre la requete courante et l'historique des recherches fructueuses.

L'integration Sylius : trois approches possibles

Sylius, par sa nature modulaire et son socle Symfony, facilite grandement l'integration d'une recherche semantique.

  1. Plugin existant. LupaSearch propose un plugin Sylius qui synchronise automatiquement les donnees produit. Gally, developpe par Smile, est une solution open source de searchandising qui combine Elasticsearch et recherche vectorielle, avec une interface de merchandising pour configurer boost, synonymes et categories virtuelles.
  2. Plugin Sylius personnalise. Un developpeur Symfony experimente peut creer un plugin qui ajoute un listener sur les evenements de cycle de vie des produits, un service d'indexation Qdrant et une route de recherche. Decouple du coeur de Sylius, reutilisable sur plusieurs projets.
  3. Recommandation produit a produit. En recuperant le vecteur d'un produit visite et en interrogeant Qdrant pour ses plus proches voisins, vous affichez un bloc « Produits similaires » sur chaque fiche produit, avec une pertinence bien superieure aux simples regles de categorie.

Benefices SEO : au-dela de la recherche interne

L'impact SEO d'une recherche semantique IA depasse la seule experience utilisateur. Les moteurs de recherche evaluent desormais la pertinence globale d'un site e-commerce. Un moteur de recherche interne performant reduit le taux de rebond et augmente le temps passe sur le site, deux signaux comportementaux positifs.

Plus strategique encore, l'emergence du GEO impose de structurer vos donnees produit de maniere a ce que les IA generatives puissent les comprendre et les recommander. La recherche semantique interne et l'optimisation pour les moteurs d'IA partagent la meme fondation : des descriptions produits riches, des donnees structurees completes et une comprehension des intentions plutot que des mots-cles.

Etude de cas chiffree : un projet reel

Lors d'une mission recente pour un site e-commerce dans le secteur de la mode, nous avons remplace une recherche Elasticsearch lexicale par une architecture Qdrant + OpenAI embeddings. Le catalogue comportait 500 000 references avec des descriptions en francais et en anglais. Les resultats apres trois mois d'exploitation :

  • Taux d'echec de recherche (zero resultat) : passe de 12 % a 2,3 %
  • Taux de conversion des visiteurs utilisant la recherche : +14 %
  • Panier moyen des sessions avec recherche : +8 %

Ces chiffres sont coherents avec les ameliorations de pertinence de l'ordre de 20 % observees dans le secteur.

Cout, scalabilite et production

Le deploiement en production exige une attention particuliere a plusieurs aspects :

  • Latence : la recherche doit rester sous 200 ms. Avec Qdrant, une recherche vectorielle sur un million de vecteurs s'execute en moins de 10 ms. Le temps de generation de l'embedding via API est d'environ 50 ms.
  • Scalabilite : Qdrant supporte le sharding natif. Un cache Redis des embeddings de requetes frequentes evite de rappeler l'API. Un circuit breaker garantit une degradation gracieuse vers la recherche lexicale si le service est indisponible.
  • Synchronisation : assuree par Symfony Messenger avec un transport AMQP (RabbitMQ ou SQS). Chaque modification de produit declenche un message consomme par un worker dedie, sans impact sur les performances de l'interface d'administration.

Checklist de mise en oeuvre

  1. Choisir le modele d'embeddings adapte a votre volume et a vos exigences linguistiques.
  2. Deployer Qdrant via Docker sur un serveur dedie (minimum 8 Go de RAM pour un catalogue moyen).
  3. Instrumenter le backend Symfony avec un service d'indexation pilote par les evenements Doctrine.
  4. Creer le endpoint de recherche vectorielle combinant similarite et filtres metier.
  5. Construire l'interface React avec recherche instantanee et feedback visuel.
  6. Monitorer : taux de zero resultat, taux de clic sur les resultats, taux de conversion par session de recherche.

Vous souhaitez equiper votre catalogue d'une recherche intelligente qui comprend vos clients ? Contactez-moi pour un audit technique de votre solution actuelle et une proposition chiffree adaptee a votre infrastructure. Consultez aussi nos formules et tarifs.

Questions fréquentes

13 projets livresGrand-Est & BelgiqueLighthouse >90Disponible immédiatement

Un projet en tete ?

Discutons de votre site web. Réponse garantie sous 24h.

Ou appelez directement :06 95 41 30 25

WhatsApp
Appeler