Implémentation de la recherche en texte intégral

La recherche en texte intégral est disponible par instance de SQL Server et est représentée dans SMO par l'objet FullTextService. L'objet FullTextService réside sous l'objet Server. Il est utilisé pour gérer les options de configuration pour le service de recherche en texte intégral de Microsoft. L'objet FullTextCatalogCollection appartient à l'objet Database et c'est une collection d'objets FullTextCatalog qui représentent des catalogues de texte intégral définis pour la base de données. Vous ne pouvez avoir qu'un seul index de recherche en texte intégral défini pour chaque table, contrairement aux index normaux. Il est représenté par un objet FullTextIndexColumn dans l'objet Table.

Pour créer un service de recherche en texte intégral, vous devez avoir un catalogue de texte intégral défini sur la base de données et un index de recherche en texte intégral défini sur l'une des tables de la base de données.

En premier lieu, créez un catalogue de texte intégral sur la base de données en appelant le constructeur FullTextCatalog et en spécifiant le nom de catalogue. Puis, créez l'index de recherche en texte intégral en appelant le constructeur et en spécifiant la table sur laquelle il doit être créé. Vous pouvez ajouter des colonnes d'index pour l'index de recherche en texte intégral, en utilisant l'objet FullTextIndexColumn et en fournissant le nom de la colonne dans la table. Ensuite, définissez la propriété CatalogName sur le catalogue que vous avez créé. Enfin, appelez la méthode Create et créez l'index de recherche en texte intégral sur l'instance de SQL Server.

Exemple

Pour utiliser un exemple de code fourni, vous devez sélectionner l'environnement, le modèle et le langage de programmation à utiliser pour créer votre application. Pour plus d'informations, consultez Procédure : créer un projet SMO Visual Basic dans Visual Studio .NET ou Procédure : créer un projet SMO Visual C# dans Visual Studio .NET.

Création d'un service de recherche en texte intégral en Visual Basic

Cet exemple de code crée un catalogue de recherche en texte intégral pour la table ProductCategory dans la base de données exemple AdventureWorks. Il crée alors un index de recherche en texte intégral sur la colonne Name dans la table ProductCategory. L'index de recherche en texte intégral requiert qu'un index unique soit défini au préalable sur la colonne.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks database.
Dim db As Database
db = srv.Databases("AdventureWorks")
'Reference the ProductCategory table.
Dim tb As Table
tb = db.Tables("ProductCategory", "Production")
'Define a FullTextCatalog object variable by specifying the parent database and name arguments in the constructor.
Dim ftc As FullTextCatalog
ftc = New FullTextCatalog(db, "Test_Catalog")
ftc.IsDefault = True
'Create the Full Text Search catalog on the instance of SQL Server.
ftc.Create()
'Define a FullTextIndex object varaible by supplying the parent table argument in the constructor.
Dim fti As FullTextIndex
fti = New FullTextIndex(tb)
'Define a FullTextIndexColumn object variable by supplying the parent index and column name arguements in the constructor.
Dim ftic As FullTextIndexColumn
ftic = New FullTextIndexColumn(fti, "Name")
'Add the indexed column to the index.
fti.IndexedColumns.Add(ftic)
fti.ChangeTracking = ChangeTracking.Automatic
'Specify the unique index on the table that is required by the Full Text Search index.
fti.UniqueIndexName = "AK_ProductCategory_Name"
'Specify the catalog associated with the index.
fti.CatalogName = "Test_Catalog"
'Create the Full Text Search index on the instance of SQL Server.
fti.Create()

Création d'un service de recherche en texte intégral en Visual C#

Cet exemple de code crée un catalogue de recherche en texte intégral pour la table ProductCategory dans la base de données exemple AdventureWorks. Il crée alors un index de recherche en texte intégral sur la colonne Name dans la table ProductCategory. L'index de recherche en texte intégral requiert qu'un index unique soit défini au préalable sur la colonne.

{ 
//Connect to the local, default instance of SQL Server. 
   Server srv = default(Server); 
   srv = new Server(); 
   //Reference the AdventureWorks database. 
   Database db = default(Database); 
   db = srv.Databases("AdventureWorks"); 
   //Reference the ProductCategory table. 
   Table tb = default(Table); 
   tb = db.Tables("ProductCategory", "Production"); 
   //Define a FullTextCatalog object variable by specifying 
   //the parent database and name arguments in the constructor. 
   FullTextCatalog ftc = default(FullTextCatalog); 
   ftc = new FullTextCatalog(db, "Test_Catalog"); 
   ftc.IsDefault = true; 
   //Create the Full-Text Search catalog on the instance of SQL Server. 
   ftc.Create(); 
   //Define a FullTextIndex object varaible by supplying the 
   //parent table argument in the constructor. 
   FullTextIndex fti = default(FullTextIndex); 
   fti = new FullTextIndex(tb); 
   //Define a FullTextIndexColumn object variable by supplying 
   //the parent index and column name arguements in the constructor. 
   FullTextIndexColumn ftic = default(FullTextIndexColumn); 
   ftic = new FullTextIndexColumn(fti, "Name"); 
   //Add the indexed column to the index. 
   fti.IndexedColumns.Add(ftic); 
   fti.ChangeTracking = ChangeTracking.Automatic; 
   //Specify the unique index on the table that is required by 
   //the Full Text Search index. 
   fti.UniqueIndexName = "AK_ProductCategory_Name"; 
   //Specify the catalog associated with the index. 
   fti.CatalogName = "Test_Catalog"; 
   //Create the Full Text Search index on the instance of SQL Server. 
   fti.Create(); 
}