Page 1 sur 1

moteur de recherche et majuscules/minuscules

Posté : 26 janv. 2006, 01:01
par VSAB
Bonjour

J'ai installé un petit moteur de recherche sur mon site, multitables.

Un requete de type :

Code : Tout sélectionner

SELECT * FROM matable WHERE champs like '%mot_recherche%'
Mais comment rendre cette recherche indépendante des majuscules/minuscules ? En effet pour l'instant taper le mot recherché dans le formulaire en majuscule ou minuscule donne deux résultats differents.

Grand merci

Posté : 26 janv. 2006, 01:06
par Hubert Roksor
Je viens d'essayer "moteur de recherche php" sur Google, et je suis horrifié des résultats car tous les topsites propose la même approche (celle que tu as suivie) et qui se trouve être la pire :(

Alors oublie tout ce que tu as pu lire à ce sujet et jette-toi sur la Recherche en texte intégral (Full-text) dans MySQL, qui s'occupera de ce genre de détails. ;)

Posté : 26 janv. 2006, 20:19
par VSAB
Grand merci pour ton lien. J'en ai fait une première lecture en diagonale : très intéressant !!!

Posté : 27 janv. 2006, 02:03
par jobherzt
la méthode que j'utilise ( dont personne ne m'a encore demontré que c'etait une connerie ) est d'indexer chaque article dans lequel je veux faires des recehrches. ainsi, pour chaque mot qui apparait dans un article, je stocke : ce mot en minuscule et sans accents, l'id de l'article et le nombre de fois qu'il apparait dans l'article. les avntages :
- plus de probleme de casse, d'accents ou de code html ( si tu as télé dans ta base et qu'on cherche tele, il se passe quoi.. )
- j'elimine de l'index les mots inutiles ( plus rapide, environ 40% de volume de texte a chercher en moins )
- comme un mot qui apparait plusieurs fois dans un article n'apparait qu'une fois dans mon index -> encore plus rapide
- comme je fais du coup une recherche en texte exact et pas en "contient", et que l'index est trie -> encore plus rapide :-)
- j'ai une notion de score ( simple, mais qui pourrait etre ameliorée ) qui me permet de trier les resultats.