sql >> Base de Datos >  >> RDS >> Sqlserver

Realice análisis de productos mediante la búsqueda de texto completo de SQL Server. Parte 1

Este artículo considera cómo realizar un análisis básico de productos mediante la búsqueda de texto completo.

Además, los lectores aprenderán algunos ejemplos prácticos de análisis de productos con respecto a las ventas con la ayuda de consultas de texto completo.

En pocas palabras, este artículo enfatiza la importancia de la búsqueda de texto completo, brindando información sobre los datos, además de responder muchas consultas de ventas desde el punto de vista comercial sin la necesidad de adoptar metodologías más sofisticadas, que sin embargo tienen sus beneficios.

Acerca del análisis de productos

Echemos un vistazo primero al análisis del producto.

¿Qué es el análisis de productos?

El análisis de productos desde el punto de vista comercial es el método de analizar su producto y sus ventas (datos) de tal manera que lo ayude a comprender las fortalezas y debilidades de su producto.

Por ejemplo, la alta dirección de una empresa de venta de automóviles podría querer conocer todas las características del automóvil relacionadas con la seguridad y los sensores para convertirlo en un punto fuerte de venta para su automóvil.

Otro ejemplo es cuando una empresa puede estar interesada en ver todos los productos vendidos durante una temporada de lluvias que contienen 'lluvia', 'resistente a la lluvia' o 'resistente al agua' (en la descripción) para comprender si los clientes desean comprar productos nuevos para una temporada de lluvias. temporada (de ellos) o no.

¿Por qué es necesario el análisis de productos?

El análisis de productos es la clave para un negocio que funcione con éxito y puede ayudar a resaltar los pros y los contras de un negocio.

También puede ayudar a la empresa a tomar mejores decisiones en función de las compras existentes.

Aparte de eso, el análisis de productos puede ayudar a la empresa a comprender las tendencias comerciales y hacia dónde se dirigen.

¿Cómo realizar análisis de productos?

Por un lado, la forma básica de analizar su producto es ejecutar consultas SQL en la base de datos que contiene el producto y sus datos de ventas.

Aún así, una mejor manera de obtener más información es utilizar la búsqueda de texto completo para consultar su base de datos de ventas, ya que ofrece criterios de búsqueda mejorados que no están disponibles en consultas SQL generales.

Análisis de productos con limitación de búsqueda de texto completo

Aunque se puede realizar un análisis considerablemente bueno de un producto con la búsqueda de texto completo, tiene sus propias limitaciones.

Para un análisis e informes más flexibles y profundos de sus datos respaldados por una infraestructura especialmente diseñada, debe desarrollar una solución de almacenamiento de datos de inteligencia empresarial.

Requisitos

Revise los requisitos previos para realizar un análisis de productos mediante la búsqueda de texto completo que se presenta más adelante en este artículo.

Sólidos conocimientos de T-SQL

Este artículo espera que los lectores (con la intención de implementar el análisis del producto) tengan sólidas habilidades de T-SQL y puedan escribir y ejecutar cómodamente consultas SQL en la(s) base(s) de datos.

Comprensión básica y avanzada de la búsqueda de texto completo

El artículo asume que los lectores que tienen la intención de implementar el recorrido mediante la búsqueda de texto completo tienen un conocimiento bastante bueno de la búsqueda de texto completo y sus usos.

Consulte el artículo Implementación de la búsqueda de texto completo en SQL Server 2016 para usuarios avanzados para obtener una comprensión de nivel avanzado de la búsqueda de texto completo si ya está familiarizado con sus conceptos básicos.

Sin embargo, consulte el artículo Implementación de la búsqueda de texto completo en SQL Server 2016 para principiantes si necesita desarrollar una comprensión básica antes de comenzar con los usos avanzados de la búsqueda de texto completo.

Búsqueda de texto completo instalada

Además, este artículo espera que ya tenga instalada la búsqueda de texto completo en su instancia de SQL.

Instale la búsqueda de texto completo en el servidor SQL de la siguiente manera:

  1. Ejecute el instalador de SQL.
  2. Ejecutar archivo de configuración.
  3. Agregar como característica.
  4. Elija su servidor actual.
  5. Seleccione la función de instancia que desea agregar.

Consulte el artículo Implementación de búsqueda de texto completo en SQL Server 2016 para principiantes para obtener información detallada de los pasos mencionados anteriormente.

Finalmente, verifique el estado de la búsqueda de texto completo ejecutando el siguiente script T-SQL en la base de datos maestra:

-- Is Full-Text Search installed then 1 or 0
SELECT fulltextserviceproperty('IsFulltextInstalled') as [Full-Text Search]

El resultado debe ser el siguiente (si la búsqueda de texto completo se instaló correctamente):

Preparación de búsqueda de texto completo para análisis de productos

Prepárese para ejecutar consultas de texto completo para realizar análisis de productos después de configurar una base de datos de muestra.

Configurar una base de datos de muestra (CarPlus)

Configure una base de datos de muestra llamada CarPlus de la siguiente manera:

-- 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

Identificar el producto

La muestra CarPlus La base de datos contiene la siguiente información, que se almacena en una sola tabla para simplificar la complejidad estructural de la base de datos y centrarse por completo en el análisis del producto:

  1. Número de pedido (del coche comprado)
  2. La edad del cliente que compra el producto (coche)
  3. Características (del automóvil) que le gustaron al cliente

Tenga en cuenta que el producto que hemos elegido para el análisis de este artículo es el automóvil comprado por un cliente.

Sin embargo, es posible que nos interesen más las características que le gustaron al cliente cuando compró el automóvil porque estas características tienen información crucial para el negocio.

El pedido de coche tabla de la base de datos se representa de la siguiente manera:

Crear un catálogo de texto completo

El primer paso una vez que la base de datos de muestra (CarPlus) ha sido creada y completada con éxito es crear un catálogo de texto completo.

Esto permite implementar la búsqueda de texto completo.

Cree un catálogo de texto completo ejecutando el siguiente script T-SQL en la base de datos de ejemplo:

-- Create Full-Text Catalog 
CREATE FULLTEXT CATALOG CarCatalog AS DEFAULT;  
GO  

Definir un índice de texto completo en la columna FeaturesLiked

Desde Características que le gustaron va a ser la columna central utilizada en el análisis de productos, debemos definir un índice de texto completo en ella para ejecutar consultas de texto completo.

Escriba el siguiente script T-SQL para definir un í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 

Tenga en cuenta que solo puede definir un índice de texto completo en una columna de la tabla, por lo que debe elegirlo con prudencia.

Pedidos totales por edad de los clientes

Primero hagamos un análisis rápido para ver cuántos autos se vendieron a los clientes pertenecientes a un grupo de edad en particular ejecutando el siguiente script:

--View total orders by customers age
SELECT CustomerAge,count(CarOrderId) as TotalOrders FROM dbo.CarOrder
GROUP BY CustomerAge
ORDER BY count(CarOrderId) DESC

La salida es la siguiente:

El análisis se volverá más interesante cuando apliquemos la búsqueda de texto completo.

Análisis de las funciones de seguridad infantil (búsqueda de texto completo)

La empresa está ansiosa por conocer las características de seguridad para niños que les gustaron a los clientes cuando compraron los autos.

Encontrar las 3 principales características de seguridad infantil que les gustaron a los clientes

Primero busquemos las 3 principales características de seguridad para niños que les gustaron a los clientes cuando compraron el automóvil, y esto se puede encontrar utilizando la búsqueda de texto completo de la siguiente manera:

--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*"')

Los resultados son los siguientes:

Encontrar funciones de seguridad para niños que no sean Isofix y Safety Lock

Sin embargo, para asegurarnos de que estas son las dos únicas características de seguridad para niños que les gustaron a los clientes que compraron los autos (en esta temporada), debemos modificar nuestra consulta de texto completo para examinar si hay más características de seguridad para niños:

Para encontrar esto, ejecute la siguiente consulta de búsqueda 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*"')

La salida es la siguiente:

Resumen de los resultados del análisis

A la luz de los resultados anteriores, podemos decir fácilmente que al cliente le gustaron las siguientes funciones de seguridad infantil:

  1. Accesorios para asientos infantiles Isofix
  2. Bloqueo de seguridad para niños

Ahora nos quedan las dos posibilidades siguientes:

  1. Estas son las únicas funciones de seguridad infantil que ofrece la empresa.
  2. El negocio ofrecía otras características de seguridad para niños, pero los clientes no las preferían al comprar los autos.

En función de los resultados, debemos asegurarnos de que estas características de seguridad para niños no se reemplacen ni se excluyan en la próxima temporada, ya que parecen ser un punto fuerte de venta para el negocio.

Análisis de las características de los frenos

Lo siguiente que debe ver la empresa es qué tipo de características relacionadas con los frenos les gustaron a los clientes para poder concentrarse en esas características en las próximas ventas.

Buscar características de frenos que les gusten a los clientes

Para encontrar las 5 características principales relacionadas con los frenos que les gustaron a los clientes, podemos ejecutar la siguiente 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)')

La salida es la siguiente:

Resumen de los resultados del análisis

Como resultado de la consulta de texto completo anterior, ahora sabemos que las características relacionadas con los frenos que les gustaban a los clientes al momento de comprar automóviles eran las siguientes:

  1. Sistema de frenos antibloqueo avanzado
  2. Frenos de disco avanzados

Parece que de las muchas características relacionadas con los frenos, esta temporada, los clientes eligieron las dos anteriores, y tal vez alguna información más pueda ayudar a la empresa a mejorar sus decisiones futuras.

Enhorabuena, ha aprendido con éxito a realizar un análisis de productos mediante la búsqueda de texto completo.

Manténgase en contacto ya que la Parte 2 de este artículo contiene una forma un poco más avanzada de análisis de productos mediante la búsqueda de texto completo.

Cosas que hacer

Ahora que puede realizar un análisis de productos con la búsqueda de texto completo, intente lo siguiente:

  1. Trate de obtener información correlacionada al encontrar a los clientes a los que les gustaron tanto los frenos como las características de seguridad para niños cuando compraron los autos.
  2. Teniendo en cuenta este artículo, busque a los clientes a los que les gustaron los accesorios para asientos infantiles Isofix. pero no el Bloqueo de seguridad para niños función.
  3. Intente buscar a los clientes a los que no les gustaron los Frenos de disco avanzados pero me gustó el Sistema de frenos antibloqueo avanzado .