OVH Cloud OVH Cloud

Recherche d'un mot

5 réponses
Avatar
ADB
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai =E0 faire une recherche par mots-cl=E9s sur l'ensemble des champs de=
la=20
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce=20
mot, et non la cha=EEne des caract=E8res de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec=20
"rouge" et non avec "carouge", "rougeur" ou autre (mais =E9ventuellement =

"rouges").
Quelle doit =EAtre la syntaxe =E0 adopter (pour en parler avec le=20
responsable du programme) ?
Merci de vos r=E9ponses
ADB

--=20
Guide M=E9diterran=E9e :
http://guidemediterranee.free.fr ou http://guidemediterranee.info

Guide Manche:
http://guidemanche.free.fr ou http://guidemanche.info

Guide Atlantique:
http://guideatlantique.free.fr ou http://guideatlantique.info

5 réponses

Avatar
Philippe T [MS]
Bonjour,

Le mieux est de passer par le moteur FULLTEXT de SQL Server. Il faut pour
cela indexer les colonnes qui doivent être prises en compte dans la
recherche et utiliser dans les clauses WHERE SQL une syntaxe
CONTAINS(mytable.*, 'rouge').

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cb3370$0$17399$
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai à faire une recherche par mots-clés sur l'ensemble des champs de la
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce
mot, et non la chaîne des caractères de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec
"rouge" et non avec "carouge", "rougeur" ou autre (mais éventuellement
"rouges").
Quelle doit être la syntaxe à adopter (pour en parler avec le
responsable du programme) ?
Merci de vos réponses
ADB

--
Guide Méditerranée :
http://guidemediterranee.free.fr ou http://guidemediterranee.info

Guide Manche:
http://guidemanche.free.fr ou http://guidemanche.info

Guide Atlantique:
http://guideatlantique.free.fr ou http://guideatlantique.info
Avatar
ADB
Merci de la réponse.
N'est-il pas possible "d'insérer" avant le mot-clé un espace qui soit
compté dans la recherche ?
ADB

Philippe T [MS] a écrit :
Bonjour,

Le mieux est de passer par le moteur FULLTEXT de SQL Server. Il faut po ur
cela indexer les colonnes qui doivent être prises en compte dans la
recherche et utiliser dans les clauses WHERE SQL une syntaxe
CONTAINS(mytable.*, 'rouge').

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cb3370$0$17399$
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai à faire une recherche par mots-clés sur l'ensemble des champs de la
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce
mot, et non la chaîne des caractères de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec
"rouge" et non avec "carouge", "rougeur" ou autre (mais éventuellemen t
"rouges").
Quelle doit être la syntaxe à adopter (pour en parler avec le
responsable du programme) ?
Merci de vos réponses
ADB




--
Guide Méditerranée :
http://guidemediterranee.free.fr ou http://guidemediterranee.info

Guide Manche:
http://guidemanche.free.fr ou http://guidemanche.info

Guide Atlantique:
http://guideatlantique.free.fr ou http://guideatlantique.info
Avatar
Philippe T [MS]
Bonjour,

Oui je pense, si nécessaire.

Pour les pluriels et autre, SQL est aussi capable de gérer de la recherche
inflectionnelle.

Mon conseil c'est d'aller voir dans la doc de SQL Server la syntaxe de
CONTAINS

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cbc43d$0$18044$
Merci de la réponse.
N'est-il pas possible "d'insérer" avant le mot-clé un espace qui soit
compté dans la recherche ?
ADB

Philippe T [MS] a écrit :
Bonjour,

Le mieux est de passer par le moteur FULLTEXT de SQL Server. Il faut pour
cela indexer les colonnes qui doivent être prises en compte dans la
recherche et utiliser dans les clauses WHERE SQL une syntaxe
CONTAINS(mytable.*, 'rouge').

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cb3370$0$17399$
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai à faire une recherche par mots-clés sur l'ensemble des champs de la
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce
mot, et non la chaîne des caractères de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec
"rouge" et non avec "carouge", "rougeur" ou autre (mais éventuellement
"rouges").
Quelle doit être la syntaxe à adopter (pour en parler avec le
responsable du programme) ?
Merci de vos réponses
ADB




--
Guide Méditerranée :
http://guidemediterranee.free.fr ou http://guidemediterranee.info

Guide Manche:
http://guidemanche.free.fr ou http://guidemanche.info

Guide Atlantique:
http://guideatlantique.free.fr ou http://guideatlantique.info
Avatar
ADB
OK. Je vais chercher cette doc.
Merci
ADB

Philippe T [MS] a écrit :
Bonjour,

Oui je pense, si nécessaire.

Pour les pluriels et autre, SQL est aussi capable de gérer de la rech erche
inflectionnelle.

Mon conseil c'est d'aller voir dans la doc de SQL Server la syntaxe de
CONTAINS

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cbc43d$0$18044$
Merci de la réponse.
N'est-il pas possible "d'insérer" avant le mot-clé un espace qui so it
compté dans la recherche ?
ADB

Philippe T [MS] a écrit :

Bonjour,

Le mieux est de passer par le moteur FULLTEXT de SQL Server. Il faut po ur
cela indexer les colonnes qui doivent être prises en compte dans la
recherche et utiliser dans les clauses WHERE SQL une syntaxe
CONTAINS(mytable.*, 'rouge').

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cb3370$0$17399$
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai à faire une recherche par mots-clés sur l'ensemble des champs de la
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce
mot, et non la chaîne des caractères de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec
"rouge" et non avec "carouge", "rougeur" ou autre (mais éventuellemen t
"rouges").
Quelle doit être la syntaxe à adopter (pour en parler avec le
responsable du programme) ?
Merci de vos réponses
ADB








--
Guide Méditerranée :
http://guidemediterranee.free.fr ou http://guidemediterranee.info

Guide Manche:
http://guidemanche.free.fr ou http://guidemanche.info

Guide Atlantique:
http://guideatlantique.free.fr ou http://guideatlantique.info
Avatar
Fred BROUARD
ADB a écrit:
Merci de la réponse.
N'est-il pas possible "d'insérer" avant le mot-clé un espace qui soit
compté dans la recherche ?



non, car il ne trouverait pas les occurences suivantes :
Le petit chat est "rouge"
rouge est le petit chat
...

A lire sur le sujet :
http://sqlpro.developpez.com/cours/indextextuelle/

A +


--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************

ADB

Philippe T [MS] a écrit :

Bonjour,

Le mieux est de passer par le moteur FULLTEXT de SQL Server. Il faut pour
cela indexer les colonnes qui doivent être prises en compte dans la
recherche et utiliser dans les clauses WHERE SQL une syntaxe
CONTAINS(mytable.*, 'rouge').

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"ADB" wrote in message
news:41cb3370$0$17399$
Bonjour,
Je ne connais pas SQL Server. Mais j'utilise une BDD qui l'emploie.
J'ai à faire une recherche par mots-clés sur l'ensemble des champs de la
base. Je ne veux obtenir que les fiches dans lesquelles se trouve ce
mot, et non la chaîne des caractères de ce mot.
Par exemple, je cherche "rouge" et je veux trouver les fiches avec
"rouge" et non avec "carouge", "rougeur" ou autre (mais éventuellement
"rouges").
Quelle doit être la syntaxe à adopter (pour en parler avec le
responsable du programme) ?
Merci de vos réponses
ADB