> Data > Une meilleure conception des moteurs de recherche

Une meilleure conception des moteurs de recherche

Data - Par iTPro.fr - Publié le 24 juin 2010
email

par David Jones Utilisez la fonction de recherche documentaire de SQL Server 7.0 pour concevoir des bases de données pouvant être consultées sur le Web

Que vous fassiez des recherches pour un exposé ou que vous recherchiez un numéro de téléphone, ou encore que vous ne fassiez que surfer, vous utilisez probablement un moteur de recherche Internet quotidiennement. Pour répondre à  la demande d'informations récupérables, de nombreuses entreprises conçoivent des sites Web utilisant des bases de données relationnelles en arrière-plan et sur lesquels les utilisateurs peuvent effectuer des recherches dynamiques. En notre qualité d'administrateurs de bases de données et de développeurs d'applications, nous devons concevoir de meilleurs mécanismes permettant à  l'utilisateur de rechercher des informations sur l'entreprise, telles que les bilans pour les actionnaires, les communiqués de presse, les catalogues produits, etc... La fonction de recherche documentaire de SQL Server 7.0 peut représenter la réponse. Le moteur de recherche documentaire de SQL Server permet des recherches rapides, et offre des fonctionnalités avancées de recherche de texte, très utiles dans un environnement d'entreprise.

Vous utilisez probablement un moteur de recherche Internet quotidiennement

Avec les premières versions de SQL Server, on était limité à  des requêtes sur de larges blocs de texte en utilisant LIKE dans une instruction SELECT. Mais l'instruction LIKE est limitée, car elle ne peut établir de correspondance qu'avec des séquences de caractères. En outre, si on utilise l'instruction LIKE avec un signe pourcent (%) avant et après la chaîne recherchée, on génère une analyse de table très longue. La plupart des utilisateurs ont besoin de fonctions de recherche plus avancées, produisant des résultats immédiats après qu'ils aient appuyé sur la touche Entrée. Avec SQL Server 7.0 et les versions ultérieures, on peut toujours utiliser l'instruction LIKE si on le souhaite, mais on peut désormais aussi utiliser une nouvelle option de syntaxe et indexer les données.

Au lieu d'utiliser les index stockés dans la base de données, le moteur de recherche documentaire utilise Microsoft Search Service pour répertorier ces index sur le disque dur du serveur. Lorsqu'on sélectionne l'option Full-Text Search dans la Configuration personnalisée de SQL Server, le processus d'installation installe automatiquement Microsoft Search Service. Toutefois, ce service n'est disponible que pour les systèmes Standard et Enterprise sous Windows 2000 ou Windows NT, et non dans les versions poste de travail ou Windows 9x. Microsoft Search Service intègre deux fonctions distinctes : conception et peuplement du catalogue de recherche documentaire, et traitement de la recherche.

Pour installer le moteur de recherche documentaire après avoir installé SQL Server, il faut réexécuter l'installation à  partir du CD-ROM de SQL Server 7.0. Dans la boîte de dialogue Select Components (Sélectionner les composants), sélectionnez L'option Full-Text Search, comme cela est indiqué dans la figure 1, puis redémarrez. Seul SQL Server 7.0 fonctionnant sous NT Server prend en charge la recherche documentaire. L'environnement NT Server Enterprise Edition clusterisé ne supporte pas encore la fonction de recherche documentaire de SQL Server. De fait, Microsoft prendra en charge cette fonction dans un environnement clusterisé dans SQL Server 2000.

Une meilleure conception des moteurs de recherche

Microsoft Search Service stocke les index de recherche documentaire dans des fichiers
situés sur un disque dur du serveur. Par défaut, Microsoft Search Service stocke
ces fichiers, appelés catalogues de recherche documentaire, dans \MSSQL7\FTDATA
mais on peut modifier le chemin d’accès de ces catalogues. On ne peut pas stocker
de catalogues de recherche documentaire sur une disquette, un lecteur réseau ou
un lecteur amovible. Les tables de grande taille ayant besoin d’espace, je crée
toujours les index de recherche documentaire dans une partition disposant de beaucoup
d’espace disque.



Pour utiliser l’indexation de recherche documentaire, la table SQL Server doit
disposer d’un index unique, également appelé clé primaire. S’il n’est pas possible
de créer de clé unique à  partir d’une table potentiellement indexée, il faut ajouter
une colonne d’identité pouvant être incrémentée à  la table, ou une autre colonne
permettant de créer un index unique. Pour aider Microsoft Search Service à  fonctionner
de manière optimale, maintenez l’index unique aussi petit que possible. Après
avoir défini l’index unique, ou la clé primaire, on ne peut effectuer une indexation
de recherche documentaire que sur les colonnes char, varchar, text, nchar, nvarchar
et ntext.



Le moteur de recherche documentaire ne peuple pas dynamiquement les index de recherche
documentaire. Par conséquent, tous les ajouts, toutes les modifications ou suppressions
de données ne seront plus disponibles pour la recherche jusqu’à  ce que l’on ait
à  nouveau peuplé le catalogue de recherche documentaire. Il existe deux méthodes
pour peupler un catalogue de recherche documentaire à  nouveau : faire un peuplement
manuel ou planifier une tâche permettant de peupler le catalogue. Ces deux méthodes
permettent de choisir entre un peuplement intégral et un peuplement incrémental.



Le peuplement intégral efface toutes les données stockées dans un catalogue de
recherche documentaire et le peuple de données liées aux tables correspondantes.
Etant donné qu’un peuplement intégral peut demander beaucoup de temps et de ressources
pour les tables de grande taille, je préfère utiliser un peuplement incrémental,
qui n’insère que les données textuelles ajoutées à  la base de données depuis le
dernier peuplement incrémental. Pour effectuer un peuplement incrémental, l’une
des colonnes de la table de recherche documentaire doit être de type timestamp
(horodatage). Il n’y a pas de besoin d’effectuer le peuplement complet d’un catalogue
peuplé en incrémental tant que la définition de la table n’est pas modifiée, ou
tant qu’on n’a pas ajouté de tables au catalogue.



N’oubliez pas que les index de recherche documentaire ne sont pas aussi précis
que les index standard. Cependant, une recherche basée sur des index standard
ne renvoie que des résultats correspondant exactement à  une chaîne de caractères
donnée, tandis qu’une recherche documentaire peut retrouver un mot, une expression,
le préfixe d’un mot ou d’une expression, un mot ou une expression proche d’un(e)
autre ou encore une désinence d’un terme (par exemple, une recherche sur « requête »
peut renvoyer les résultats contenant « requêtes », « requérir » et « requis »). Le
tableau 1, inspiré des informations contenues dans SQL Server BOL (Books Online),
répertorie d’autres différences entre les index SQL classiques et les index de
recherche documentaire.



























Tableau 1 Index classiques et index de recherche
documentaire
Index SQL classiques Index de recherche documentaire
Stocké et contrôlé par la base de données Stocké dans le systeème de fichiers via la base
de données
Plusieurs index par table. Automatiquement mis
à  jour lorsque des données sont insérées, mises à  jour ou supprimées.
Une seule définition d’index par table. Il faut
faire une demande de peuplement (soit planifiée soit à  la demande).
Crées et supprimés en utilisant des instructions
SQL.
Créés, gérés et supprimés en utilisant des procédures
cataloguées ou une interface utilisateur graphique
On peut créer des index à  partir de tout type
de colonne, à  l’exception des colonnes de type texte, BLOB, binaire ou image.
On peut créer des index uniquement sur des colonnes
de type char, varchar, text, nchar, nvarchar et ntext. Microsoft étudie
la possibilité de prendre en charge les types de données binaires dans les
versions à  venir de SQL Server.

Téléchargez cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Data - Par iTPro.fr - Publié le 24 juin 2010