|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour,
Je suis en train d'essayer de mettre en place un moteur de recherches. J'ai pour le moment une table avec des Entreprises (idEntreprise ; nomEntreprise). Mon but étant de pouvoir faire différentes recherches comme par exemple : "a la recherche du bonheur" "recherche bonheur" "a-la-recherche-du-bonheur" Il faudrait pouvoir que ca ignore les termes "inutiles" comme a, de, la, les, du ... mais aussi les signes qui ne sont pas les caractères alphanumériques. Donc, je pensais faire un Index dans une nouvelle table, mais je ne suis pas sûr que ce soit ce qu'il y a de mieux à faire. J'attends vos conseils. Merci
__________________
Vincent Pieplu Développeur Site Internet |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Les moteurs de base de données onte des outils spécifiques optimisant à mort ce genre de requête. T'embarques pas dans la création d'un nouvel index séparé, avec mysql tu dois utiliser un index FULLTEXT sur ton champ et ensuite il ne te reste plus qu'à nettoyer ta chaine de recherche et de faire un MATCH() AGAINST(). Regardes ici Et normalement le tour est joué.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Je viens de lire et d'essayer de comprendre un peu le lien que tu m'as fourni.
le FULLTEXT, comment il se créé dans ma table existante ? Ensuite, lors de nouvelles insertions, cela se fera automatiquement ? Pareil pour les Update ? Merci de ces informations qui pourront peut être m'aider a mieux comprendre.
__________________
Vincent Pieplu Développeur Site Internet |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() |
Ah, j'ai pas fait gaffe j'aurais dû te mettre la doc en français qui se trouve ici.
Cela concerne la version 5.0 mais ça devrait être impeccable pour la version 5.1 Yapuka comme dirait l'autre
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
C'est en gros ce que j'avais compris voire pas compris lol
Avec tes termes, tu saurais m'expliquer ce que je disais précédemment ? "le FULLTEXT, comment il se créé dans ma table existante ? Ensuite, lors de nouvelles insertions, cela se fera automatiquement ? Pareil pour les Update ?" Ensuite, lorsque je faisais un "chez marcel" Code :
SELECT champ from Table where (nomEntreprise like '% chez %' and nomEntreprise like '% marcel %') or (tag like '% chez %' and tag like '% marcel %') Code :
SELECT champ from Table where match (nomEntreprise,tag) against ('chez marcel')
__________________
Vincent Pieplu Développeur Site Internet |
|
|
00
|
|
|
#6 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 335 ![]() |
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com