ameliorer moteur de recherche

pegaze371
Invité n'ayant pas de compte PHPfrance

12 nov. 2008, 16:13

Bonjour à tous,

Je souhaiterais améliorer mon moteur de recherche car aprés enquête, il s'avére que pour pour un certains nombre d'utilisateurs, la recherche ne donne pas entière satisfaction.

Voici le fonctionnement du moteur actuellement :
La recherche se base sur : texte de lois informatique

1ère phase : nettoyage de la chaine passée en paramétre (suppression des "le, la, les...").
2ème phase : cassage de la chaine au niveau des espaces et stockage des mots dans un tableau
3ème phase : passage de chaque mots dans les champs de recherche de la requête

Code : Tout sélectionner

Ex requête : select * from tables where (titre like 'texte%' or resume like 'texte%' or mots_clefs like 'texte%'.... AND (tire like 'lois%')..... et ainsi de suite
Qu'en pensez des mes phases ?

La recherche se devait d'être "commence par", c'était dans le cahier des charges d'ou le like 'chaine%'. J'ai essayé le like "%chaine%", mais il y a trop de résultats et de plus il retourne des résultats avec la chaine contenu dans des mots (ex : recherche "terre", il retourne "deterrer").

Je suis donc perdu, je ne sais plus quoi faire pour améliorer le moteur.
A savoir, qu'on parle de fiche documentaire, il y a d'autres champs pour faire la recherche (mais ils ne s'en servent presque jamais).

Si quelqu'un à des idées, je suis preneur.

Merci de votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 nov. 2008, 13:30

Bonjour,

Les moteurs de base de données intègrent quasiment tous des fonctionnalités de recherche fulltext.
C'est à mon sens la meilleure approche en terme de pertinence des résultats et de performance pour réaliser un moteur de recherche.

Voici la doc sur cette fonctionnalité pour MySQL :
http://dev.mysql.com/doc/refman/5.0/fr/ ... earch.html
Quand tout le reste a échoué, lisez le mode d'emploi...