Recherche par mot clé [Résolu]

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

Votre réponse

3 réponses

Meilleure réponse
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
19 septembre 2013
- 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é 90 internautes ce mois-ci

Commenter la réponse de tri_yann
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
19 septembre 2013
- 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
Messages postés
96
Date d'inscription
lundi 24 novembre 2008
Dernière intervention
5 mai 2013
- 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.