Recherche par mot clé [Résolu]

Signaler
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
-
kerfahi
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
-
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

3 réponses

Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
19 septembre 2013
2
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
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
19 septembre 2013
2
Désolé il manque une parenthèse fermante à la requête B. Si tu as besoin d'aide, poste.


Yann
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
5 mai 2013
2
merci pour l'aide