Billet intéressant
Surtout la mise en perspective des possibilités des 2 SGBD : MySQL5.0 et MSSQL.
Est ce que Oracle (par exemple Oracle 10g ou 11g) possède plus de possibilités Full Text Search que MySQL5.0 ?
Ceci dit, je suis un peu dubitatif quant à la notion de synonymie que propose MSSQL
Prenons un exemple. Le code suivant :
CONTAINS((LVR_TITRE,LVR_RESUME),''FORMSOF(THESAURUS,"militaire") ',LANGUAGE 'French')
va chercher les synonymes du mot militaire... mais cette recherche se base sur quel dictionnaire ? et quel dictionnaire de quel domaine ?
Je m'explique. Essaye d'obtenir la liste des synonymes du mot militaire dans différents dictionnaire.
Dico des synonymes de l'université de caen :
-------------------------------------------
http://www.crisco.unicaen.fr/cgi-bin/cherches.cgi
liste des synonymes :
baderne, belliqueux,
boucher,
engagé, guerrier, homme de guerre, martial, polémologique, soldat, soldatesque, stratégique, tactique.
Dico du cnrs : http://dico.isc.cnrs.fr/dico/fr/chercher
------------
liste des synonymes :
baderne, belliqueux, guerrier, martial, soldat, soldatesque,homme de guerre,
officier,polémologique,
sous-officier,stratégique, tactique
Quand on met en regard ces 2 listes, on se rend compte que selon le dictionnaire utilisé la liste des synonymes n'est pas la même.
Si on consulte le Trésor de la Langue Française (TLF)
--------------------------------------------------
On se rend également compte que le TLF a aussi sa liste de synonymes pour le mot "militaire"
Petite conclusion :
-------------------
--> D'un dico à un autre la notion de synonymie est variable !
--> Aussi il faut noter également que le synonyme d'un mot varie selon le domaine (Médécine, Informatique, Cuisine, ...)
Exemple : Table (en base de données) n'a pas les mêmes synonymes
que Table (en Cuisine)
D'où ma question :
---------------
Est-il possible d'indiquer à MSSQL Server quel dico utiliser pour Full Text Search ?
C'est à dire que si je dispose d'un dctionnaire de synonymes dans le domaine Médical par exemple, est-il possible :
1.) Incorporer (d'attacher) ce dico à SQL Server ?
2.) D'indiquer à SQL Server d'utiliser ce dico lors de la recherche de synonymes ?
Un mot sur la notion de proximité proposée par MSSQL :
La commande
CONTAINS((LVR_TITRE ,LVR_RESUME),' "guerre" NEAR "paix" ')
retourne les lignes contenant "guerre" à proximité du mot "paix"
C'est ce qu'on appelle la collocation en lingustique.
Est-il possible de rechercher les lignes contenant le mot "guerre" dont le mot "paix" n'est pas colocataire ?
c'est à dire un NEAR NOT ?
A+
Partager