Comment faire une bonne fonction de recherche

WRInaute occasionnel
salut à tous !

Alors voilà, dans mes tables j'ai beaucoup de chose du genre :

titre - description - texte(pas de mots clés)

et dans le cadre de la refonte du site, on va améliorer notre moteur de recherche "maison".

On utilise actuellement des requetes sql avec LIKE mais c'est très très loin d'être pertinent :( .

Si vous avez des tutoriaux, des explications, des aides, des astuces (ou des fonctions toutes faites (on peut rêver ?)) (mais pas des scripts !) !

Merci d'avance !
 
Nouveau WRInaute
Pour des recherches plus complexes, MySQL supporte les expressions régulières et le Full-Text.

Pour une solution plus évoluée, voir du côté de Xapian.
 
WRInaute accro
Yep, suite à ce post mis en lien un peu plus haut par spidetra, https://www.webrankinfo.com/forum/t/developper-un-moteur-de-recherche-en-php.41650/ , je suis en train de tester plus profondément FULL TEXT ( http://dev.mysql.com/doc/refman/5.0/fr/ ... uning.html )...

Pour le moment, dans mon avancement :
-> La recherche grâce à FULLTEXT est bien plus rapide que ce que j'essai de programmer
-> Elle est par contre beaucoup moins pertinente

Je compte par conséquent combiner les 2 systèmes.

Par contre, j'ai des souci avec FULL TEXT :
-> le même mot au pluriel ou au singulier sont 2 mots différents
-> FULL TEXT ne gère pas les mots de moins de 3 caractères (très embétant dans mon cas)

Si vous avez des tuyaux (liens, expériences perso, ...), je suis preneur...
 
WRInaute impliqué
blman a dit:
...Pour le moment, dans mon avancement :
-> La recherche grâce à FULLTEXT est bien plus rapide que ce que j'essai de programmer
-> Elle est par contre beaucoup moins pertinente
Oui, elle est bien pratique mais a ses limitations. Si elle est tres utile pour des recherches sur les textes, elle est nettement moins performante dans les recherches sur des criteres precis.

blman a dit:
-> FULL TEXT ne gère pas les mots de moins de 3 caractères (très embétant dans mon cas)
C'est un pb pour moi aussi mais pas insoluble. il faut mysql >= 4.0 et recompiler mysql... une paille :)
C'est promis, je ne ferai plus de site tratant de choses comme les dvd, as, vin, etc... bref tous ces petits mots qui "passent a l'as", tiens, encore une expression qui ne donnera pas de bons résultats :lol:

blman a dit:
Si vous avez des tuyaux (liens, expériences perso, ...), je suis preneur...
Des tuyaux, non mais j'utilise les deux techiques:
- par defaut la recherche avec like sur les champs eligibles + la possibilite de selectionner une ou plusieurs categories
- je laisse la possibilite de faire une recherche en full text dans un champ contenant tous les mots significatifs (dans l'ordre) des champs eligibles pour la recherche, mais c'est une action volontaire de la part de l'utilisateur.
 
Discussions similaires
Haut