Este artigo fala sobre a pesquisa de texto completo e sua implementação para iniciantes.
Além disso, os leitores saberão as coisas importantes para fazer a pesquisa de texto completo funcionar corretamente.
Este artigo também destaca a importância de usar a pesquisa de texto completo para corresponder a padrões de texto e atender a tipos semelhantes de requisitos.
Sobre a pesquisa de texto completo
Vamos entender a pesquisa de texto completo com a ajuda de definições.
Definição simples
A pesquisa de texto completo é usada para pesquisar dados baseados em caracteres de maneira otimizada para obter respostas rápidas.
Definição da Microsoft
A pesquisa de texto completo no SQL Server e no Banco de Dados SQL do Azure (versão em nuvem do banco de dados SQL) permite que usuários e aplicativos executem consultas de texto completo em dados baseados em caracteres em tabelas do SQL Server.
O que é consulta de texto completo
Uma consulta de texto completo é um tipo especial de consulta que é escrita e executada em colunas com dados textuais para encontrar padrões de dados. Para isso, a Pesquisa de Texto Completo deve ser habilitada para essas colunas.
Compatibilidade
A pesquisa de texto completo é compatível com as seguintes versões do SQL Server:
- SQL Server 2005 e superior
- Banco de dados SQL do Azure
Versão moderna da pesquisa de texto completo
Nas versões recentes do SQL Server, como o SQL 2016, a pesquisa de texto completo está disponível para instalação junto com a pesquisa semântica.
Pesquisa de texto completo – SQL Server opcional
Lembre-se de que a pesquisa de texto completo não é instalada por padrão quando você instala o SQL Server. Você precisa instalá-lo opcionalmente adicionando mais recursos à sua instância SQL atual usando a configuração usada originalmente para instalar o SQL Server.
Pesquisa de texto completo - Padrão do banco de dados
Todos os bancos de dados SQL estão prontos para serem usados com a Pesquisa de Texto Completo por padrão. Nenhuma instalação adicional é necessária, exceto os requisitos antes de usar a pesquisa de texto completo em um banco de dados SQL.
Sensibilidade de maiúsculas e minúsculas
De acordo com a documentação da Microsoft, a pesquisa de texto completo não diferencia maiúsculas de minúsculas, portanto, as palavras “painel de controle”, “painel de controle” e “painel de controle” são tratadas da mesma forma.
Configurar pesquisa de texto completo
Conforme mencionado, você precisa adicionar a Pesquisa de Texto Completo como um recurso à sua instalação existente do SQL Server usando o mesmo arquivo de configuração usado para instalar o SQL Server.
Execute o instalador do SQL
Comece executando o instalador do SQL Server. Ele oferece a opção de montar como uma unidade, se você preferir executar diretamente do instalador em vez de salvá-lo.
Executar arquivo de configuração
Clique no arquivo Setup.exe para executar a configuração do SQL Server:
Adicionar como um recurso
Assim que você executar o arquivo de instalação, algumas verificações iniciais serão realizadas. Depois que essas verificações forem aprovadas, você precisa selecionar “adicionar recursos a uma opção de instalação existente” na barra de navegação Instalação (seção):
Escolha seu servidor atual
Em seguida, escolha o servidor atual/potencial para o qual você instalará a pesquisa de texto completo. No nosso caso, é o SQL 2016:
Selecione o recurso de instância a ser adicionado
Em seguida, selecione as Extrações de texto completo e semântica para pesquisa recurso a ser adicionado (se você adicionar esse recurso para versões SQL mais antigas, as Extrações Semânticas podem não ser exibidas):
Observe que, como já adicionei esse recurso antes do passo a passo, ele aparece acinzentado na captura de tela. Mas para quem está adicionando pela primeira vez, ele estará ativo e poderá ser instalado, o que demora um pouco.
Verifique o status de instalação da pesquisa de texto completo
Depois que a pesquisa de texto completo estiver instalada, você poderá verificá-la executando o seguinte script T-SQL no banco de dados mestre:
-- Is Full-Text Search installed then 1 or 0 SELECT fulltextserviceproperty('IsFulltextInstalled') as [Full-Text Search]
Depois de instalar com sucesso a Pesquisa de Texto Completo, você verá “1” significando que o script está sendo executado:
Pesquisar palavras e frases usando a pesquisa de texto completo
Agora, realizaremos algumas operações básicas de pesquisa de palavras e frases usando a pesquisa de texto completo.
Configurar banco de dados de amostra
Para entender o uso básico da pesquisa de texto completo, vamos configurar um banco de dados de exemplo chamado SQLDevBlogV6 do seguinte modo:
-- Create sample database (SQLDevBlogV6) CREATE DATABASE SQLDevBlogV6; GO USE SQLDevBlogV6; -- (1) Create Article table in the sample database CREATE TABLE [dbo].[Article] ( [ArticleId] INT IDENTITY (1, 1) NOT NULL, [Category] VARCHAR (50) NULL, [Author] VARCHAR (50) NULL, [Title] VARCHAR (150) NULL, [Published] DATETIME2 (7) NULL, [Notes] VARCHAR (400) NULL, CONSTRAINT [PK_Article] PRIMARY KEY (ArticleId) ); GO -- (2) Populate the table with data SET IDENTITY_INSERT [dbo].[Article] ON INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (1, N'Development', N'Atif', N'Introduction to T-SQL Programming ', N'2017-01-01 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (2, N'Testing', N'Peter', N'Database Unit Testing Fundamentals', N'2017-01-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (3, N'DLM', N'Sadaf', N'Database Lifecycle Management for beginners', N'2017-01-20 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (4, N'Development', N'Peter', N'Common Table Expressions (CTE)', N'2017-02-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (5, N'Testing', N'Sadaf', N'Manual Testing vs. Automated Testing', N'2017-03-20 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (6, N'Testing', N'Atif', N'Beyond Database Unit Testing', N'2017-11-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (7, N'Testing', N'Sadaf', N'Cross Database Unit Testing', N'2017-12-20 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (8, N'Development', N'Peter', N'SQLCMD - A Handy Utility for Developers', N'2018-01-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (9, N'Testing', N'Sadaf', N'Scripting and Testing Database for beginners ', N'2018-02-15 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (10, N'Development', N'Atif', N'Advanced Database Development Methods', N'2018-07-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (11, N'Testing', N'Sadaf', N'How to Write Unit Tests for your Database', N'2018-11-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (12, N'Development', N'Peter', N'Database Development using Modern Tools', N'2018-12-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (13, N'DLM', N'Atif', N'Designing, Developing and Deploying Database', N'2019-01-01 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (14, N'DLM', N'Peter', N'How to Apply Database Lifecycle Management', N'2019-02-10 00:00:00', NULL) INSERT INTO [dbo].[Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (15, N'Testing', N'Saqib', N'SQL Unit Testing Stored Procedures', N'2019-03-10 00:00:00', NULL) SET IDENTITY_INSERT [dbo].[Article] OFF
Frases e Palavras
Vamos ver mais frases e palavras no contexto da pesquisa de texto completo. Isso lhe dará uma ideia melhor do que você está procurando por meio da pesquisa de texto completo.
A declaração “Introdução ao T-SQL ” é uma frase e “introdução ” e “T-SQL ” são as palavras de interesse.
Etapas para implementar a pesquisa de texto completo no SQL Server
Uma pesquisa de texto completo é implementada das seguintes maneiras:
- Crie um catálogo de texto completo (para armazenar índices de texto completo).
- Defina Índice de Texto Completo na Tabela ou Visualização Indexada.
- Execute consultas de pesquisa de texto completo usando CONTAINS ou FREETEXT para encontrar palavras e frases.
Criar um catálogo de texto completo
Portanto, o banco de dados de exemplo (SQLDevBlogV6) foi criado e preenchido com sucesso. Criar um Catálogo de Texto Completo é a primeira etapa para implementar a Pesquisa de Texto Completo.
Vá para Explorador de Objetos no SQL Server, expanda Bancos de dados nó e clique em SQLDevBlogV6.
Clique em Armazenamento e clique em Catálogos de texto completo, e clique em Novo Catálogo de Texto Completo:
Insira o nome do catálogo como DevBlogCatalog, Clique em OK:
O Catálogo de Texto Completo recém-criado tem a seguinte aparência:
Definir um índice de texto completo na tabela
Clique com o botão direito nos Artigos tabela, clique em Índice de texto completo, e clique em Definir índice de texto completo como mostrado abaixo:
Isso acionará o Assistente de Indexação de Texto Completo. Clique em Avançar e clique em Avançar novamente depois de garantir que a chave primária da tabela seja pré-selecionada pelo assistente.
Na próxima etapa, selecione o Título coluna para consultas de texto completo. Esta é a coluna na qual executaremos nossas consultas de texto completo:
Em seguida, selecione a opção padrão para automatizar o rastreamento de alterações selecionando o botão Automaticamente opção (a menos que você esteja interessado em selecionar alguma outra opção) conforme mostrado abaixo:
Na próxima etapa, escolha o Catálogo de Texto Completo (DevBlogCatalog) para associar ao Índice de Texto Completo que você definiu anteriormente neste passo a passo. Em seguida, clique em Avançar depois de escolher as opções padrão, conforme mostrado abaixo:
Clique em Avançar e pule a etapa opcional e clique em Concluir para ver se o índice de texto completo foi criado com êxito.
Agora podemos executar consultas de texto completo no Título coluna da tabela Artigo graças à ativação da pesquisa de texto completo.
Pesquisar por teste de palavras usando a consulta de texto completo
Agora podemos pesquisar palavras rapidamente usando o CONTAINS palavra-chave (predicado) escrevendo o seguinte script T-SQL:
-- Search for the Word Testing using Full-Text Query SELECT * FROM dbo.Article WHERE CONTAINS(Title,'Testing')
Os resultados para pesquisar o Teste palavra no Título coluna são os seguintes:
Observe que você pode obter os mesmos resultados usando o operador Like sem pesquisa de texto completo. A diferença é quando você está executando essa consulta em milhões e milhões de linhas e é quando o operador LIKE luta. Enquanto isso, CONTAINS é muito mais rápido, de acordo com os especialistas.
Pesquisar frase para iniciantes usando a consulta de texto completo
Vamos encontrar todos os artigos onde a frase "para iniciantes" é usado no título. Isso ajudará os iniciantes a começar rapidamente.
Desta vez estamos usando o FREETEXT palavra-chave (predicado). Ele nos fornecerá todos os artigos para iniciantes usando o seguinte script T-SQL:
-- Search for Phrase: for beginners using Full-Text Query SELECT * FROM dbo.Article WHERE FREETEXT(Title,'for beginners')
A saída é a seguinte:
Parabéns, você aprendeu com sucesso os fundamentos da pesquisa de texto completo. Você também tem experiência prática na configuração e execução de consultas de pesquisa de texto completo para palavras e frases.
Fique em contato, pois o próximo artigo descreve o uso avançado da Pesquisa de Texto Completo. Geralmente é útil em cenários de análise de banco de dados.
O que fazer
Agora que você pode configurar a pesquisa de texto completo e executar consultas de texto completo, tente as seguintes coisas para melhorar suas habilidades:
- Tente preencher o banco de dados Notas coluna fornecendo mais informações sobre os artigos. Ele deve ser seguido pela definição do Catálogo de Texto Completo e pela execução de consultas de Texto Completo para pesquisar palavras e frases usando as palavras-chave CONTAINS e FREETEXT.
- Além disso, pesquise a palavra Unidade para descobrir todos os artigos onde esta palavra é mencionada. Ele pode ser armazenado na coluna como Unit Testing, Unit Test ou Unit Tests.
- Consulte o banco de dados de exemplo neste artigo. Configurar pesquisa de texto completo para a tabela Produto, defina o índice de texto completo na coluna nome, e adicione quantos registros puder. Pesquise palavras e frases de sua escolha para encontrar os produtos desejados (nomes).