Full-Text Search – Pesquisa de arquivos binários no SqlServer

Precisamos de uma tabela com campos textos (varchar, nvarchar, char e nchar – xml e varbinary também podem entrar na brincadeira, mas veremos em outra oportunidade) para indexar, lembrando que também será necessária uma chave única ou primária formada por um único campo nesta tabela.

 

 

Em seguida, criamos nosso catálogo:

Definimos que o catálogo será o padrão (“default”) e não terá sensibilidade a acentos (“accent insensitive”):

Depois de criado o catálogo, abra as propriedades e no menu Tables/Views, adicione as tabelas que serão indexadas, a chave única ou primária, as colunas e os idiomas utilizados na indexação. Por fim, defina “Track changes” com automático.

Criado o catálogo, adicione os registros na sua tabela:

1
2
3
4
5
6
7
8
9
10
11
12
13
INSERT INTO Textos VALUES
('Azul', 'Modelo de texto'),
('Verde', 'Segundo texto modelo'),
('Vermelho', 'Terceiro texto modelo'),
('Amarelo', 'Modelo'),
('Preto', 'Dados complementares de livros não lidos'),
('Branco', 'Leitura não obrigatória'),
('Azulado', 'Textos obrigatórios'),
('Azuis', 'Textos obrigatórios'),
('Verdes', 'Segunda versão dos textos'),
('Vermelha', 'Literatura'),
('Negro', 'Dados complementares de livros lidos'),
('Claro', 'Leitura obrigatória')

Depois execute suas primeiras consultas que substituirão o “Campo LIKE ‘%valor%’”:

1
2
3
SELECT * FROM Textos WHERE CONTAINS(Nome, 'texto')
SELECT * FROM Textos WHERE CONTAINS(Texto, 'texto')

Como o FTS é preenchido em um processo assíncrono, talvez demore um pouco para as palavras serem indexadas, e alguns fragmentos dos textos podem ser desconsiderados, como artigos, advérbios e pronomes.

O FTS possui duas funções básicas para as pesquisas, CONSTAINS e a FREETEXT, que têm sintaxes semelhantes, mas podem realizar tarefas bem diferentes.

 

Fonte: https://sqlfromhell.wordpress.com/2011/02/10/full-text-search-overview/

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *