[SQL] requete pour moteur de recherche...
Fermé
Nico
-
20 avril 2008 à 16:18
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 21 avril 2008 à 11:23
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 21 avril 2008 à 11:23
A voir également:
- [SQL] requete pour moteur de recherche...
- Safari moteur de recherche - Télécharger - Navigateurs
- Recherche musique - Guide
- Moteur de recherche 1fichier ✓ - Forum Réseaux sociaux
- Opera moteur de recherche - Télécharger - Navigateurs
- Pourquoi mon moteur de recherche change tout seul ✓ - Forum Google Chrome
5 réponses
metalque89
Messages postés
33
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
18 novembre 2008
2
20 avril 2008 à 19:22
20 avril 2008 à 19:22
bonjour,
Tu peux faire une requête pour chacun de tes 3 filtres et faire une 4ieme requête qui reprend le résultat de ces requêtes. D'abord tu reprends le résultat de ta recherche "chaussure sport" puis le résultat des autres requêtes que tu ajoute par l'instruction UNION ALL SELECT, ça fonctionne comme ça:
SELECT (champs requete1) FROM requête1 UNION ALL SELECT (champs requete2) FROM requête2...
Tu dois avoir autant de champs sélectionnés pour chaque SELECT!
Maintenant si l'utilisateur tape 3 mots tu devras avoir plus de 10 requêtes (rapide calcul de tête :)) donc c'est pas génial.
Dans ce cas le mieux serait sans doute de passer par VBA.
J'espère t'avoir aidé.
Tu peux faire une requête pour chacun de tes 3 filtres et faire une 4ieme requête qui reprend le résultat de ces requêtes. D'abord tu reprends le résultat de ta recherche "chaussure sport" puis le résultat des autres requêtes que tu ajoute par l'instruction UNION ALL SELECT, ça fonctionne comme ça:
SELECT (champs requete1) FROM requête1 UNION ALL SELECT (champs requete2) FROM requête2...
Tu dois avoir autant de champs sélectionnés pour chaque SELECT!
Maintenant si l'utilisateur tape 3 mots tu devras avoir plus de 10 requêtes (rapide calcul de tête :)) donc c'est pas génial.
Dans ce cas le mieux serait sans doute de passer par VBA.
J'espère t'avoir aidé.
Merci pour ta réponse.
Je vais essayer avec l'instruction UNION, j'y avais pas pensé, mais j'espère que c'est pas trop lourd coté perf...
D'autres idées ?
Je vais essayer avec l'instruction UNION, j'y avais pas pensé, mais j'espère que c'est pas trop lourd coté perf...
D'autres idées ?
J'ai testé la requte ci dessous :
SELECT * FROM boutique where description like '%chaussure sport%'
UNION ALL
SELECT * FROM boutique where description like '%chaussure%'
UNION ALL
SELECT * FROM boutique where description like '%sport%'
ça me retourne bien tous les sites qui contienne "chaussure sport", "chaussure" et "sport", par contre, il ne sont pas présentés dans l'ordre de pertinence, en effet, j'aimerai avoir dans les 1er resultats les sites contenant "chaussure sport" puis les sites contenant "chaussure" ET "sport", puis les sites contentant "chaussure" OU "sport".
C'est ce classement que je n'arrive pas à faire.
Si quelqu'un a une idée, un grand merci d'avance.
Nico.
SELECT * FROM boutique where description like '%chaussure sport%'
UNION ALL
SELECT * FROM boutique where description like '%chaussure%'
UNION ALL
SELECT * FROM boutique where description like '%sport%'
ça me retourne bien tous les sites qui contienne "chaussure sport", "chaussure" et "sport", par contre, il ne sont pas présentés dans l'ordre de pertinence, en effet, j'aimerai avoir dans les 1er resultats les sites contenant "chaussure sport" puis les sites contenant "chaussure" ET "sport", puis les sites contentant "chaussure" OU "sport".
C'est ce classement que je n'arrive pas à faire.
Si quelqu'un a une idée, un grand merci d'avance.
Nico.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
120
21 avril 2008 à 11:23
21 avril 2008 à 11:23
Salut,
vous devez definir une sorte de "fonction d'évaluation de pertinence" puis faire le trie (order by) selon cette fonction.
Autrement vous n'avez pas sur quoi se basé.
Réflichissez à faire une view avec des champs aupplémentaires.
vous devez definir une sorte de "fonction d'évaluation de pertinence" puis faire le trie (order by) selon cette fonction.
Autrement vous n'avez pas sur quoi se basé.
Réflichissez à faire une view avec des champs aupplémentaires.