Bonjour à tous,
J'ai besoin pour mon site (PHP/MySQL) de créer un moteur de recherche, parsant une table de collection de CD :
voici ma table CD :
id
artiste
titre
reference
etat
membreId
...
Indexes :
primary key sur id
full text sur (artiste, titre, reference)
Volume de la table :
280 000 enregistrements
Mon moteur de recherche doit rechercher sur les champs Artiste, titre et reference.
Au debut, j'avais mis des "%like%" et "OR" partout, à bannir bien sur...
Alors j'ai cherché un peu et j'ai ensuite utilisé MATCH... AGAINST avec les index qui vont bien. Donc là, super ! sauf que.... ma requete ignore les mots de moins de 3 lettres. Dommage pour une recherche sur "U2" !
Il ignore aussi tous plein de petits mots genre "the", "le", "et", etc... Dommage pour une recherche sur "The Who" !
Donc là vous me dites : Fastoche, tu modifies la variable ft_stop_word (ou un truc du genre) dans la conf de mySQL. Sauf que... je suis sur un hebergeur mutualisé ! Impossible de modifier cette variable, dixit mon hebergeur.
Donc j'en viens à remettre en cause mon MATCH AGAINST et à vous demander votre avis !
Qu'en pensez-vous ? Comment faire pour avoir un truc rapide, pas (trop) usine à gaz, et possible sur un hebergeur mutualisé !?
Merci pour votre aide !
Partager