Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Effectuez une analyse de produit à l'aide de la recherche en texte intégral SQL Server. Partie 1

Cet article explique comment effectuer une analyse de base des produits à l'aide de la recherche en texte intégral.

De plus, les lecteurs apprendront quelques exemples pratiques d'analyse de produits concernant les ventes à l'aide de requêtes en texte intégral.

En un mot, cet article souligne l'importance de la recherche en texte intégral, fournissant des informations sur les données, tout en répondant à de nombreuses requêtes commerciales du point de vue commercial sans qu'il soit nécessaire d'adopter des méthodologies plus sophistiquées, qui ont cependant leurs avantages.

À propos de l'analyse des produits

Voyons d'abord l'analyse des produits.

Qu'est-ce que l'analyse de produit ?

L'analyse de produit du point de vue commercial est la méthode d'analyse de votre produit et de ses ventes (données) de manière à vous aider à comprendre les forces et les faiblesses de votre produit.

Par exemple, la direction d'une entreprise de vente de voitures peut vouloir connaître toutes les caractéristiques de la voiture liées à la sûreté, à la sécurité et aux capteurs pour en faire un argument de vente solide pour sa voiture.

Un autre exemple est lorsqu'une entreprise peut être intéressée à voir tous les produits vendus pendant une saison des pluies qui contiennent "pluie", "résistant à la douche" ou "étanche" (dans la description) pour comprendre si les clients veulent acheter de nouveaux produits pour une saison pluvieuse saison (d'eux) ou non.

Pourquoi l'analyse des produits est-elle nécessaire ?

L'analyse des produits est la clé du succès d'une entreprise et peut aider à faire ressortir les avantages et les inconvénients d'une entreprise.

Cela peut également aider l'entreprise à prendre de meilleures décisions en fonction des achats existants.

En dehors de cela, l'analyse des produits peut aider l'entreprise à comprendre les tendances commerciales et dans quelle direction elles se dirigent.

Comment effectuer une analyse de produit ?

D'une part, la méthode de base pour analyser votre produit consiste à exécuter des requêtes SQL sur la base de données contenant le produit et ses données de vente.

Néanmoins, une meilleure façon d'obtenir plus d'informations consiste à utiliser la recherche en texte intégral pour interroger votre base de données de ventes, car elle offre des critères de recherche améliorés qui ne sont pas disponibles dans les requêtes SQL générales.

Analyse des produits avec limitation de la recherche en texte intégral

Bien qu'une analyse considérablement bonne d'un produit puisse être effectuée avec la recherche en texte intégral, elle a ses propres limites.

Pour une analyse et un reporting plus flexibles et approfondis de vos données soutenus par une infrastructure spécialement conçue à cet effet, vous devez développer une solution d'entrepôt de données de Business Intelligence.

Prérequis

Veuillez passer en revue les conditions préalables afin d'effectuer une analyse de produit à l'aide de la recherche en texte intégral qui apparaît plus loin dans cet article.

Solides compétences T-SQL

Cet article s'attend à ce que les lecteurs (ayant l'intention d'implémenter l'analyse du produit) aient de solides compétences en T-SQL et soient capables d'écrire et d'exécuter confortablement des requêtes SQL sur la ou les bases de données.

Compréhension de base et avancée de la recherche en texte intégral

L'article suppose que les lecteurs qui ont l'intention de mettre en œuvre la procédure pas à pas à l'aide de la recherche en texte intégral ont une assez bonne compréhension de la recherche en texte intégral et de ses utilisations.

Veuillez vous référer à l'article Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les utilisateurs avancés pour obtenir une compréhension de niveau avancé de la recherche en texte intégral si vous connaissez déjà ses bases.

Cependant, veuillez consulter l'article Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les débutants si vous avez besoin de développer une compréhension de base avant de commencer avec les utilisations avancées de la recherche en texte intégral.

Recherche en texte intégral installée

En outre, cet article s'attend à ce que la recherche en texte intégral soit déjà installée sur votre instance SQL.

Veuillez installer la recherche en texte intégral sur le serveur SQL comme suit :

  1. Exécutez le programme d'installation SQL.
  2. Exécuter le fichier de configuration.
  3. Ajouter en tant que fonctionnalité.
  4. Choisissez votre serveur actuel.
  5. Sélectionnez la fonctionnalité d'instance à ajouter.

Veuillez vous référer à l'article Implémentation de la recherche en texte intégral dans SQL Server 2016 pour les débutants pour obtenir des informations détaillées sur les étapes mentionnées ci-dessus.

Enfin, vérifiez l'état de la recherche en texte intégral en exécutant le script T-SQL suivant sur la base de données principale :

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

Le résultat doit être le suivant (si la recherche de texte intégral est installée avec succès) :

Préparer la recherche en texte intégral pour l'analyse de produit

Préparez-vous à exécuter des requêtes de texte intégral pour effectuer une analyse de produit après avoir configuré un exemple de base de données.

Configurer une base de données d'exemples (CarPlus)

Veuillez configurer un exemple de base de données appelé CarPlus comme suit :

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

Identifier le produit

L'exemple CarPlus La base de données contient les informations suivantes, qui sont stockées dans une seule table pour simplifier la complexité structurelle de la base de données et se concentrer entièrement sur l'analyse du produit :

  1. Numéro de commande (pour la voiture achetée)
  2. L'âge du client qui achète le produit (voiture)
  3. Caractéristiques (de la voiture) que le client a appréciées

Veuillez noter que le produit que nous avons choisi pour l'analyse dans cet article est la voiture achetée par un client.

Cependant, nous pourrions être plus intéressés par les fonctionnalités que le client a appréciées lorsqu'il a acheté la voiture, car ces fonctionnalités contiennent des informations cruciales pour l'entreprise.

La CarOrder table de la base de données est représentée comme suit :

Créer un catalogue de texte intégral

La première étape une fois que l'exemple de base de données (CarPlus) a été créé et rempli avec succès consiste à créer un catalogue de texte intégral.

Cela permet d'implémenter la recherche en texte intégral.

Veuillez créer un catalogue de texte intégral en exécutant le script T-SQL suivant sur l'exemple de base de données :

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

Définir un index de texte intégral sur la colonne FeaturesLiked

Depuis Fonctionnalités aimées va être la colonne centrale utilisée dans l'analyse des produits, nous devons y définir un index de texte intégral pour exécuter des requêtes de texte intégral.

Écrivez le script T-SQL suivant pour définir un index de texte intégral :

-- Define Full-Text Index on FeaturesLiked
CREATE FULLTEXT INDEX ON dbo.CarOrder(FeaturesLiked)   
   KEY INDEX PK_CarOrder
   WITH STOPLIST = SYSTEM;  
GO 

Veuillez noter que vous ne pouvez définir un index de texte intégral que sur une colonne du tableau, veuillez donc le choisir très judicieusement.

Total des commandes selon l'âge des clients

Faisons d'abord une analyse rapide pour voir combien de voitures ont été vendues aux clients appartenant à un groupe d'âge particulier en exécutant le script suivant :

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

Le résultat est le suivant :

L'analyse deviendra plus intéressante lorsque nous appliquerons la recherche en texte intégral.

Analyse des fonctions de sécurité des enfants (recherche en texte intégral)

L'entreprise est impatiente de connaître les dispositifs de sécurité pour enfants que les clients ont appréciés lorsqu'ils ont acheté les voitures.

Rechercher les 3 principales caractéristiques de sécurité pour enfants que les clients ont appréciées

Trouvons d'abord les 3 principales caractéristiques de sécurité pour les enfants que les clients ont appréciées lorsqu'ils ont acheté la voiture, et cela peut être trouvé en utilisant la recherche en texte intégral comme suit :

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

Les résultats sont les suivants :

Rechercher des fonctions de sécurité pour enfants autres que Isofix et Verrouillage de sécurité

Cependant, pour nous assurer que ce sont les deux seuls dispositifs de sécurité pour enfants que les clients qui ont acheté les voitures (cette saison) ont appréciés, nous devons modifier notre requête en texte intégral pour examiner s'il existe d'autres dispositifs de sécurité pour enfants :

Pour le trouver, exécutez la requête de recherche en texte intégral suivante :

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

Le résultat est le suivant :

Résumé des résultats d'analyse

À la lumière des résultats ci-dessus, nous pouvons facilement dire que le client a aimé les dispositifs de sécurité pour enfants suivants :

  1. Fixation siège enfant Isofix
  2. Verrou de sécurité pour enfants

Il nous reste maintenant les deux possibilités suivantes :

  1. Ce sont les seules fonctionnalités de sécurité pour enfants proposées par l'entreprise.
  2. L'entreprise proposait d'autres dispositifs de sécurité pour les enfants, mais les clients ne les préféraient pas lors de l'achat des voitures.

Sur la base des résultats, nous devons nous assurer que ces dispositifs de sécurité pour enfants ne seront pas remplacés ou exclus au cours de la prochaine saison, car ils semblent être un argument de vente solide pour l'entreprise.

Analyse des caractéristiques des freins

La prochaine chose que l'entreprise doit voir est le type de fonctionnalités liées aux freins que les clients ont apprécié afin qu'elle puisse se concentrer sur ces fonctionnalités lors des ventes à venir.

Recherchez les fonctionnalités de freins que les clients ont appréciées

Pour trouver les 5 principales fonctionnalités liées aux freins que les clients ont appréciées, nous pouvons exécuter la requête en texte intégral suivante :

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

Le résultat est le suivant :

Résumé des résultats d'analyse

À la suite de la requête en texte intégral ci-dessus, nous savons maintenant que les caractéristiques liées aux freins que les clients appréciaient au moment de l'achat des voitures étaient les suivantes :

  1. Système de freinage antiblocage avancé
  2. Freins à disque avancés

Il semble que parmi les nombreuses fonctionnalités liées aux freins, cette saison, les clients ont choisi les deux ci-dessus, et peut-être que quelques informations supplémentaires pourraient aider l'entreprise à améliorer ses décisions futures.

Félicitations, vous avez appris avec succès comment effectuer une analyse de produit à l'aide de la recherche en texte intégral.

Restez en contact car la partie 2 de cet article contient une forme légèrement plus avancée d'analyse de produit à l'aide de la recherche en texte intégral.

Choses à faire

Maintenant que vous pouvez effectuer une analyse de produit avec la recherche en texte intégral, essayez ce qui suit :

  1. Essayez d'obtenir des informations corrélées en recherchant les clients qui ont apprécié à la fois les freins et les dispositifs de sécurité pour enfants lors de l'achat de la ou des voitures.
  2. Gardant cet article à l'esprit, recherchez les clients qui ont aimé les accessoires pour siège enfant Isofix mais pas le verrouillage de sécurité pour enfants fonctionnalité.
  3. Essayez de rechercher les clients qui n'ont pas aimé les freins à disque avancés mais j'ai aimé le Système de freinage antiblocage avancé .