Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Execute a análise do produto usando a pesquisa de texto completo do SQL Server. Parte 1


Este artigo considera como realizar a análise básica do produto usando a pesquisa de texto completo.

Além disso, os leitores vão aprender alguns exemplos práticos de análise de produtos sobre vendas com a ajuda de consultas de texto completo.

Em poucas palavras, este artigo enfatiza a importância da pesquisa de texto completo, fornecendo insights sobre dados, além de responder a muitas consultas de vendas do ponto de vista comercial, sem a necessidade de adotar metodologias mais sofisticadas, que têm seus benefícios.

Sobre a análise de produtos


Vamos dar uma olhada na análise do produto primeiro.

O que é análise de produto?


A análise do produto do ponto de vista do negócio é o método de analisar seu produto e suas vendas (dados) de tal forma que ajuda você a entender os pontos fortes e fracos do seu produto.

Por exemplo, a alta administração de uma empresa de venda de carros pode querer conhecer todos os recursos do carro relacionados à segurança, proteção e sensores para torná-lo um forte ponto de venda para seu carro.

Outro exemplo é quando uma empresa pode estar interessada em ver todos os produtos vendidos durante a estação chuvosa que contenham 'chuva', 'à prova d'água' ou 'à prova d'água' (na descrição) para entender se os clientes desejam comprar novos produtos para um período chuvoso temporada (deles) ou não.

Por que a análise do produto é necessária?


A análise do produto é a chave para um negócio bem-sucedido e pode ajudar a destacar os prós e os contras de um negócio.

Também pode ajudar a empresa a tomar melhores decisões com base nas compras existentes.

Além disso, a análise do produto pode ajudar a empresa a entender as tendências de negócios e para onde estão indo.

Como realizar a análise do produto?


Por um lado, a maneira básica de analisar seu produto é executar consultas SQL no banco de dados que contém o produto e seus dados de vendas.

Ainda assim, uma maneira melhor de obter mais informações é usar a pesquisa de texto completo para consultar seu banco de dados de vendas, pois ela oferece critérios de pesquisa aprimorados que não estão disponíveis em consultas SQL gerais.

Análise de produto com limitação de pesquisa de texto completo


Embora uma análise consideravelmente boa de um produto possa ser realizada com a Pesquisa de Texto Completo, ela tem sua própria limitação.

Para uma análise e relatórios mais flexíveis e aprofundados de seus dados, respaldados por uma infraestrutura específica, você precisa desenvolver uma Solução de Data Warehouse de Business Intelligence.

Pré-requisitos


Por favor, siga os pré-requisitos para realizar a análise do produto usando a Pesquisa de Texto Completo mais adiante neste artigo.

Fortes habilidades em T-SQL


Este artigo espera que os leitores (que pretendem implementar a análise do produto) tenham fortes habilidades em T-SQL e sejam capazes de escrever e executar consultas SQL confortavelmente no(s) banco(s) de dados.

Compreensão básica e avançada da pesquisa de texto completo


O artigo pressupõe que os leitores que pretendem implementar o passo a passo usando a Pesquisa de Texto Completo tenham uma compreensão bastante boa da Pesquisa de Texto Completo e seus usos.

Consulte o artigo Implementando a pesquisa de texto completo no SQL Server 2016 para usuários avançados para obter uma compreensão de nível avançado da pesquisa de texto completo se você já estiver familiarizado com seus conceitos básicos.

No entanto, consulte o artigo Implementando a pesquisa de texto completo no SQL Server 2016 para iniciantes se precisar desenvolver um entendimento básico antes de começar com os usos avançados da pesquisa de texto completo.

Pesquisa de texto completo instalada


Além disso, este artigo espera que você tenha a Pesquisa de Texto Completo já instalada em sua instância SQL.

Instale a pesquisa de texto completo no servidor SQL da seguinte maneira:
  1. Execute o instalador do SQL.
  2. Execute o arquivo de configuração.
  3. Adicione como um recurso.
  4. Escolha seu servidor atual.
  5. Selecione o recurso de instância a ser adicionado.

Consulte o artigo Implementando pesquisa de texto completo no SQL Server 2016 para iniciantes para obter informações detalhadas das etapas mencionadas acima.

Por fim, verifique o status da pesquisa de texto completo 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]

A saída deve ser a seguinte (se a pesquisa de texto completo for instalada com sucesso):

Preparando a pesquisa de texto completo para análise de produtos


Prepare-se para executar consultas de texto completo para realizar a análise do produto após configurar um banco de dados de amostra.

Configurar banco de dados de amostra (CarPlus)


Configure um banco de dados de amostra chamado CarPlus do seguinte modo:
-- Create sample database (CarPlus)
CREATE DATABASE CarPlus;
GO
 
 
USE CarPlus;
 
-- (1) Create CarOrder table in the sample database
CREATE TABLE CarOrder (
    CarOrderId int NOT NULL IDENTITY(1,1),
    CustomerAge int,
    FeaturesLiked varchar(300) NOT NULL,
    CONSTRAINT [PK_CarOrder] PRIMARY KEY ([CarOrderId]))
 
 
-- (2) Add data to the table
SET IDENTITY_INSERT [dbo].[CarOrder] ON
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (1, 27, N'Traction Control System, Lane Change Alert, Reverse Parking Sensor, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (2, 43, N'Advanced Anti-lock Braking System, Immobiliser, Four Wheels Drive, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (3, 33, N'Traction Control System, Immobiliser, Hill Assist, Auto Climate Control, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (4, 35, N'Isofix child seat fittings, Lane Change Alert, Collision Detection, Start Button, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (5, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Reverse Parking Sensor, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (6, 27, N'Touch Sensor, Lane Change Alert, Child Safety Lock, Auto Climate Control, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (7, 33, N'Traction Control System, Lane Change Alert, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (8, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Collision Detection, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (9, 20, N'Traction Control System, Advanced Disc Brakes, Child Safety Lock, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (10, 27, N'Isofix child seat fittings, Remote Locking, Tyre Pressure Alert, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (11, 46, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (12, 46, N'Traction Control System, Immobiliser, Collision Detection, Navigation System, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (13, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Hill Assist, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (14, 33, N'Traction Control System, Lane Change Alert, Tyre Pressure Alert, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (15, 40, N'Isofix child seat fittings, Lane Change Alert, Hill Assist, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (16, 33, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (17, 27, N'Touch Sensor, Lane Change Alert, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (18, 18, N'Touch Sensor, Lane Change Alert, Collision Detection, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (19, 33, N'Isofix child seat fittings, Lane Change Alert, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (20, 33, N'Advanced Anti-lock Braking System, Advanced Disc Brakes, Child Safety Lock, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (21, 27, N'Advanced Anti-lock Braking System, Immobiliser, Child Safety Lock, Start Button, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (22, 43, N'Advanced Anti-lock Braking System, Advanced Disc Brakes, Reverse Parking Sensor, Auto Climate Control, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (23, 33, N'Advanced Anti-lock Braking System, Immobiliser, Child Safety Lock, Navigation System, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (24, 46, N'Advanced Anti-lock Braking System, Remote Locking, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (25, 43, N'Touch Sensor, Lane Change Alert, Hill Assist, Navigation System, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (26, 32, N'Advanced Anti-lock Braking System, Immobiliser, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, Bluetooth')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (27, 32, N'Isofix child seat fittings, Immobiliser, Four Wheels Drive, Auto Climate Control, Advanced Cruise Control, Car Wifi')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (28, 26, N'Touch Sensor, Lane Change Alert, Hill Assist, Start Button, Advanced Cruise Control, DAB Radio')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (29, 43, N'Traction Control System, Lane Change Alert, Child Safety Lock, Start Button, Advanced Cruise Control, USB Connection')
INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (30, 26, N'Touch Sensor, Remote Locking, Reverse Parking Sensor, Navigation System, Advanced Cruise Control, Bluetooth')
SET IDENTITY_INSERT [dbo].[CarOrder] OFF;
GO

Identifique o produto


A amostra CarPlus banco de dados contém as seguintes informações, que são armazenadas em uma única tabela para simplificar a complexidade estrutural do banco de dados e focar totalmente na análise do produto:
  1. Número do pedido (para o carro comprado)
  2. A idade do cliente que comprou o produto (carro)
  3. Recursos (do carro) que o cliente gostou

Observe que o produto que escolhemos para a análise neste artigo é o carro adquirido por um cliente.

No entanto, podemos estar mais interessados ​​nos recursos que o cliente gostou quando comprou o carro, porque esses recursos têm informações cruciais para o negócio.

A Pedido de Carro tabela do banco de dados é representada da seguinte forma:

Criar um catálogo de texto completo


A primeira etapa depois que o banco de dados de amostra (CarPlus) foi criado e preenchido com sucesso é criar um Catálogo de Texto Completo.

Isso permite implementar a pesquisa de texto completo.

Crie um Catálogo de Texto Completo executando o seguinte script T-SQL no banco de dados de exemplo:
-- Create Full-Text Catalog 
CREATE FULLTEXT CATALOG CarCatalog AS DEFAULT;  
GO  

Defina um índice de texto completo na coluna FeaturesLiked


Desde FeaturesGostei column será a coluna central usada na análise do produto, devemos definir um Índice de Texto Completo nela para executar consultas de Texto Completo.

Escreva o seguinte script T-SQL para definir um índice de texto completo:
-- Define Full-Text Index on FeaturesLiked
CREATE FULLTEXT INDEX ON dbo.CarOrder(FeaturesLiked)   
   KEY INDEX PK_CarOrder
   WITH STOPLIST = SYSTEM;  
GO 

Observe que você só pode definir um índice de texto completo em uma coluna da tabela, portanto, escolha-o com sabedoria.

Total de pedidos por idade dos clientes


Vamos primeiro fazer uma análise rápida para ver quantos carros foram vendidos para os clientes pertencentes a uma determinada faixa etária executando o seguinte script:
--View total orders by customers age
SELECT CustomerAge,count(CarOrderId) as TotalOrders FROM dbo.CarOrder
GROUP BY CustomerAge
ORDER BY count(CarOrderId) DESC

A saída é a seguinte:

A análise ficará mais interessante quando aplicarmos a Pesquisa de Texto Completo.

Análise dos recursos de segurança infantil (pesquisa de texto completo)


A empresa está ansiosa para conhecer os recursos de segurança infantil que os clientes gostaram quando compraram os carros.

Encontrar os 3 principais recursos de segurança infantil que os clientes gostaram


Vamos primeiro encontrar os 3 principais recursos de segurança infantil que os clientes gostaram quando compraram o carro, e isso pode ser encontrado usando a pesquisa de texto completo da seguinte maneira:
--View Top 3 child safety features liked using full-text search
SELECT TOP 3
  O.CarOrderId
 ,O.CustomerAge
 ,O.FeaturesLiked
FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked, '"*child*"')

Os resultados são os seguintes:

Encontrar recursos de segurança para crianças além do Isofix e da trava de segurança


No entanto, para garantir que esses são os dois únicos recursos de segurança para crianças que os clientes que compraram os carros (nesta temporada) gostaram, precisamos modificar nossa consulta de texto completo para examinar se há mais recursos de segurança para crianças:

Para encontrar isso, execute a seguinte consulta de pesquisa de texto completo:
--View child safety features other than isofix and safety locked liked by customers
SELECT
  O.CarOrderId
 ,O.CustomerAge
 ,O.FeaturesLiked
FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked, '"*Child*" AND NOT "Child Safety Lock" AND NOT "Isofix*"')

A saída é a seguinte:

Resumo dos resultados da análise


À luz dos resultados acima, podemos dizer facilmente que o cliente gostou dos seguintes recursos de segurança para crianças:
  1. Acessórios de assento infantil Isofix
  2. Bloqueio de segurança para crianças

Agora ficamos com as duas possibilidades a seguir:
  1. Esses são os únicos recursos de segurança para crianças que a empresa oferece.
  2. Havia alguns outros recursos de segurança infantil oferecidos pela empresa, mas os clientes não os preferiram ao comprar os carros.

Com base nos resultados, temos que garantir que esses recursos de segurança infantil não sejam substituídos ou excluídos na próxima temporada, pois parecem ser um forte argumento de venda para o negócio.

Análise dos recursos dos freios


A próxima coisa para a empresa ver é que tipo de recursos relacionados aos freios os clientes gostaram para que ela possa se concentrar nesses recursos nas próximas vendas.

Pesquisar recursos de freio que os clientes gostaram


Para encontrar os 5 principais recursos relacionados ao freio que os clientes gostaram, podemos executar a seguinte consulta de texto completo:
-- Searching top 5 features related to brakes liked by the customers (full-text query)
SELECT TOP 5 O.CustomerAge,O.FeaturesLiked FROM dbo.CarOrder O
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,brake)')

A saída é a seguinte:

Resumo dos resultados da análise


Como resultado da consulta Full-Text acima, agora sabemos que os recursos relacionados aos freios que os clientes gostaram na hora de comprar carros foram os seguintes:
  1. Sistema avançado de frenagem antibloqueio
  2. Freios de disco avançados

Parece que entre os muitos recursos relacionados aos freios, nesta temporada, os clientes escolheram os dois acima, e talvez mais algumas informações possam ajudar o negócio a melhorar suas decisões futuras.

Parabéns, você aprendeu com sucesso como realizar uma análise de produto usando a pesquisa de texto completo.

Fique em contato, pois a Parte 2 deste artigo contém uma forma um pouco mais avançada de análise de produto usando a pesquisa de texto completo.

Coisas para fazer


Agora que você pode fazer uma análise de produto com a pesquisa de texto completo, tente o seguinte:
  1. Tente obter informações correlacionadas encontrando os clientes que gostaram dos freios e dos recursos de segurança para crianças ao comprar o(s) carro(s).
  2. Lembrando-se deste artigo, pesquise os clientes que gostaram dos acessórios para cadeiras infantis Isofix recurso, mas não o Bloqueio de segurança para crianças recurso.
  3. Tente pesquisar os clientes que não gostaram dos Freios a disco avançados mas gostou do Sistema Avançado de Frenagem Antibloqueio .