Recherche par mot clé [Résolu]

kerfahi 96 Messages postés lundi 24 novembre 2008Date d'inscription 5 mai 2013 Dernière intervention - 4 avril 2012 à 10:45 - Dernière réponse : kerfahi 96 Messages postés lundi 24 novembre 2008Date d'inscription 5 mai 2013 Dernière intervention
- 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 

Votre réponse

3 réponses

Meilleure réponse
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 24 avril 2012 à 01:12
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

Merci tri_yann 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 78 internautes ce mois-ci

Commenter la réponse de tri_yann
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 24 avril 2012 à 01:14
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
kerfahi 96 Messages postés lundi 24 novembre 2008Date d'inscription 5 mai 2013 Dernière intervention - 24 avril 2012 à 10:06
0
Merci
merci pour l'aide
Commenter la réponse de kerfahi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.