Recherche dans une base sql ? - PHP - Programmation
Marsh Posté le 16-07-2004 à 00:45:22
c'est pas possible ça (simplement)
tu peux faire un LIKE '%pac%' qui va te sortir les bonnes infos. par contre 2pac ...
Marsh Posté le 16-07-2004 à 01:11:42
lis le topic stp (encore une fois)
il veux taper "2pac" et que la requête lui retourne "tupac"
ça va un peu plus loin qu'un simple like...
Marsh Posté le 16-07-2004 à 01:16:32
Clair .. mais le problème, c'est qu'il devrait alors carément gérer une table de correspondances de phonèmes même si il n'y a aucun rapport "grammatical" !
Paske "tu" et "2" ... c'est un peu comme si je voulais un résultat identique pour une recherche sur "infARCtuc" et "infRACtus" !!!
Marsh Posté le 16-07-2004 à 01:49:01
Tupas et 2pac c'etait un exemple.
Je veux juste que si l'utilisateur n'est pas sur de l'orthographe ca ne poses pas de problème.
exemple: titre de chanson
- here's my love
- here is my love
exemple: Artiste
- Ghostface killa
- Ghostface killah's
le problème du LIKE c'est que je ne sais pas à l'avance quel va etre la recherche.
Code :
|
Marsh Posté le 16-07-2004 à 02:00:18
Bon ben si tu ne veux pas gérer une table de "potentielles" correspondances, peut-être que tu devrais te pencher sur les possibilités des expressions régulières de ton serveur SQL ...
Marsh Posté le 16-07-2004 à 02:08:34
il y a également des moyens géniaux pour rechercher des mots dans une base sql... on peut utiliser des fonctions comme SOUNDEX (que je trouve personnellement génial !!!!)
Marsh Posté le 16-07-2004 à 02:09:56
je comprends pas bien la notion de potentielles corespondance ?
Sinon tu penses que vu les exemples que j'ai donnée ca demande beaucoup de travail ?
Edit: en fait je crois qu'il faudrait faire un truc comme
SELECT * FROM song where artist "contient au moins un mot" de '$artist'
Marsh Posté le 16-07-2004 à 11:38:14
Bon een fait je pense que le FULLTEXT ca va suffire; J'ai indéxé mes champs artistes, titles et albums...
Je vais testé on verra
Marsh Posté le 16-07-2004 à 11:44:17
au pire, tu fais un champ que tu n'affiche jamais, ou tu stock es les clés alternatives du style
nom_artiste : tupac
detail : bla bla bla
key : 2pac twoPac
Marsh Posté le 16-07-2004 à 12:35:26
JagStang a écrit : au pire, tu fais un champ que tu n'affiche jamais, ou tu stock es les clés alternatives du style |
He he ben c'est ça que j'appellais des -"potentielles" correspondances- !
Marsh Posté le 16-07-2004 à 13:21:56
ok j'avais pas compris
Marsh Posté le 18-07-2004 à 04:57:52
Vu dans un autre topic ( mais sorry, je sais plus lequel ) ... ça peut peut-être t'aider :
fonction soundex
Marsh Posté le 18-07-2004 à 09:48:48
JagStang a écrit : c'est pas possible ça (simplement) |
y'a pas un &quivalent à SOUNDEX d'oracle sous MySQL ?
Car logiquement, si l'équivalent existe, il devrait être capable de faire le lien entre "tupac" et "2pac", car en anglais la prononciation des deux est similaire.
Marsh Posté le 18-07-2004 à 09:50:54
allopassxp a écrit : il y a également des moyens géniaux pour rechercher des mots dans une base sql... on peut utiliser des fonctions comme SOUNDEX (que je trouve personnellement génial !!!!) |
arf, grillé
Marsh Posté le 18-07-2004 à 12:34:20
allopassxp a écrit : il y a également des moyens géniaux pour rechercher des mots dans une base sql... on peut utiliser des fonctions comme SOUNDEX (que je trouve personnellement génial !!!!) |
argh ! grillé aussi !
Marsh Posté le 16-07-2004 à 00:40:12
Voila, j'ai une base SQL avec plusieurs données ...
Il est possible de faire plusieurs types de recherche.
Comment faire une recherche intelligente ?
je m'explique : j'ai comme donnée Tupac, un utilisateur recherche 2pac
Je voudrais que la base renvoie la bonne réponse.
Comment faire ?
merci