Implementando a pesquisa de texto completo
A pesquisa de texto completo está disponível por instância do SQL Server e é representada no SMO pelo objeto FullTextService. O objeto FullTextService reside sob o objeto Server. Ele é usado para gerenciar as opções de configuração do serviço de Pesquisa de Texto Completo da Microsoft. O objeto FullTextCatalogCollection pertence ao objeto Database e é uma coleção de objetos FullTextCatalog que representam catálogos de texto completo definidos para o banco de dados. Você só pode ter um índice de texto completo definido para cada tabela, diferente de índices normais. Isso é representado por um objeto FullTextIndexColumn no objeto Table.
Para criar uma serviço de pesquisa de texto completo, você precisa ter um catálogo de texto completo definido no banco de dados e um índice de pesquisa de texto completo definido em uma das tabelas do banco de dados.
Primeiro, crie um catálogo de texto completo no banco de dados chamando o construtor FullTextCatalog e especificando o nome do catálogo. Depois, crie o índice de texto completo chamando o construtor e especificando a tabela na qual ele será criado. Depois, você poderá adicionar colunas de índice ao índice de texto completo, usando o objeto FullTextIndexColumn e fornecendo o nome da coluna dentro da tabela. Em seguida, defina a propriedade CatalogName para o catálogo criado. Finalmente, chame o método Create e crie o índice de texto completo na instância do SQL Server.
Exemplo
Para usar qualquer exemplo de código fornecido, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o seu aplicativo. Para obter mais informações, consulte Como criar um projeto SMO do Visual Basic no Visual Studio .NET ou Como criar um projeto SMO do Visual C# no Visual Studio .NET.
Criando um serviço de pesquisa de texto completo no Visual Basic
Este exemplo de código cria um catálogo de pesquisa de texto completo para a tabela ProductCategory no banco de dados de exemplo do AdventureWorks. Ele cria um índice de pesquisa de texto completo na coluna Nome da tabela ProductCategory. O índice de pesquisa de texto completo exige que haja um índice exclusivo já definido na coluna.
'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()
Criando um serviço de pesquisa de texto completo no Visual C#
Este exemplo de código cria um catálogo de pesquisa de texto completo para a tabela ProductCategory no banco de dados de exemplo do AdventureWorks. Ele cria um índice de pesquisa de texto completo na coluna Nome da tabela ProductCategory. O índice de pesquisa de texto completo requer um índice exclusivo já definido na coluna.
{
//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();
}