Recherche par mot clé [Résolu]

Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
- - Dernière réponse : kerfahi
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
- 24 avril 2012 à 10:06
bonjour,
je veux faire une requête SQL qui permet de trouver une liste de document en tapant dans la barre de recherche les mots clé(chaque document a au max 5 mots clé)la requête doit chercher de nombre variable de mot clé entre 1 et 5 et affiche eux qui ont plus de mots cle???
merci
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
19 septembre 2013
2
3
Merci
Bonjour,

Ce que je ferai :
Créer une fonction table type "Split" avec comme séparateur espace. Je vais l'appeler Fn_Split. Si tu peux, crée une fonction Clr (plus rapide).
Si tu stockes les mots clés sous forme de phrase par document, voici le code :
DECLARE @Recherche varchar(255) --Texte dans barre de recherche

Select E.DocNom FROM 
(Select A.DocNom, B.Split from Documents A CROSS APPLY dbo.fn_Split(A.Mot_Cle) B --Liste mots clés par document
inner join (Select C.Split from dbo.fn_split(@Recherche) C) D --Liste des mots clé recherche
ON B.SPlit = D.Split) E
GROUP BY E.DocNom
ORDER BY Count(E.Split) DESC


Ainsi les premiers documents à sortir sont ceux qui correspondent le mieux au critère de recherche quelque soit l'ordre des mots.


Yann

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 189 internautes nous ont dit merci ce mois-ci

Commenter la réponse de tri_yann
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
19 septembre 2013
2
0
Merci
Désolé il manque une parenthèse fermante à la requête B. Si tu as besoin d'aide, poste.


Yann
Commenter la réponse de tri_yann
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
2
0
Merci
merci pour l'aide
Commenter la réponse de kerfahi