sql >> Database teknologi >  >> RDS >> Sqlserver

Udfør produktanalyse ved hjælp af SQL Server Full-Text Search. Del 1

Denne artikel gennemgår, hvordan man udfører grundlæggende produktanalyse ved hjælp af fuldtekstsøgning.

Derudover vil læserne lære nogle praktiske eksempler på produktanalyse vedrørende salg ved hjælp af Full-Text-forespørgsler.

I en nøddeskal understreger denne artikel vigtigheden af ​​fuldtekstsøgning, der giver indsigt i data sammen med besvarelse af mange salgsforespørgsler fra et forretningsmæssigt synspunkt uden behov for at anvende mere sofistikerede metoder, som dog har deres fordele.

Om produktanalyse

Lad os først tage et kig på produktanalysen.

Hvad er produktanalyse?

Produktanalyse fra et forretningsmæssigt synspunkt er metoden til at analysere dit produkt og dets salg (data) på en sådan måde, at det hjælper dig med at forstå styrkerne og svaghederne ved dit produkt.

For eksempel vil topledelsen i et bilsalgsfirma måske gerne vide alle bilens funktioner relateret til sikkerhed, sikkerhed og sensorer for at gøre den til et stærkt salgsargument for deres bil.

Et andet eksempel er, når en virksomhed kan være interesseret i at se alle produkter, der sælges i en regnsæson, som indeholder 'regn', 'brusefast' eller 'vandtæt' (i beskrivelsen) for at forstå, om kunderne ønsker at købe nye produkter til en regnvejr. sæson (fra dem) eller ej.

Hvorfor er produktanalyse nødvendig?

Produktanalyse er nøglen til en succesfuld virksomhed, og den kan hjælpe med at få en virksomheds plusser og minusser frem.

Det kan også hjælpe virksomheden med at træffe bedre beslutninger baseret på de eksisterende indkøb.

Ud over det kan produktanalyse hjælpe virksomheden med at forstå forretningstendenserne, og hvilken vej de er på vej.

Hvordan udfører man produktanalyse?

For det første er den grundlæggende måde at analysere dit produkt på ved at køre SQL-forespørgsler mod databasen, der indeholder produktet og dets salgsdata.

Alligevel er en bedre måde at få mere information på at bruge fuldtekstsøgning til at forespørge i din salgsdatabase, da den tilbyder forbedrede søgekriterier, som ikke er tilgængelige i generelle SQL-forespørgsler.

Produktanalyse med fuldtekstsøgning

Selvom en betydelig god analyse af et produkt kan udføres med fuldtekstsøgning, har den sin egen begrænsning.

For at få en mere fleksibel og dybdegående analyse og rapportering af dine data understøttet af en specialbygget infrastruktur, skal du udvikle en Business Intelligence Data Warehouse-løsning.

Forudsætninger

Gennemgå venligst forudsætningerne for at udføre produktanalyse ved hjælp af fuldtekstsøgning, der kommer senere i denne artikel.

Stærke T-SQL-færdigheder

Denne artikel forventer, at læserne (som har til hensigt at implementere produktanalysen) har stærke T-SQL-færdigheder og er i stand til komfortabelt at skrive og køre SQL-forespørgsler mod databasen/databaserne.

Grundlæggende og avanceret forståelse af fuldtekstsøgning

Artiklen antager, at de læsere, der har til hensigt at implementere gennemgangen ved hjælp af Full-Text Search, har en ret god forståelse af Full-Text Search og dens anvendelser.

Se venligst artiklen Implementering af fuldtekstsøgning i SQL Server 2016 for avancerede brugere for at få en avanceret forståelse af fuldtekstsøgning, hvis du allerede er fortrolig med dets grundlæggende funktioner.

Gennemgå dog artiklen Implementing Full-Text Search i SQL Server 2016 for begyndere, hvis du har brug for at udvikle en grundlæggende forståelse, før du går i gang med avanceret brug af Full-Text Search.

Fuld tekstsøgning installeret

Desuden forventer denne artikel, at du allerede har fuldtekstsøgning installeret på din SQL-instans.

Installer venligst fuldtekstsøgningen på SQL-serveren som følger:

  1. Kør SQL Installer.
  2. Kør installationsfilen.
  3. Tilføj som en funktion.
  4. Vælg din nuværende server.
  5. Vælg den instansfunktion, der skal tilføjes.

Se venligst artiklen Implementering af fuldtekstsøgning i SQL Server 2016 for begyndere for at få detaljerede oplysninger om trinene nævnt ovenfor.

Til sidst skal du kontrollere status for fuld tekstsøgning ved at køre følgende T-SQL-script mod masterdatabasen:

-- Er Full-Text Search installeret, så 1 eller 0SELECT fulltextserviceproperty('IsFulltextInstalled') som [Full-Text Search] 

Outputtet skal være som følger (hvis Full-Text Search er installeret med succes):

Forberedelse af fuldtekstsøgning til produktanalyse

Forbered dig på at køre Full-Text-forespørgsler for at udføre produktanalyse efter opsætning af en prøvedatabase.

Opsæt eksempeldatabase (CarPlus)

Opret en eksempeldatabase kaldet CarPlus som følger:

-- Opret eksempeldatabase (CarPlus)OPRET DATABASE CarPlus;GO BRUG CarPlus; -- (1) Opret CarOrder-tabel i eksempeldatabasenCREATE TABLE CarOrder ( CarOrderId int NOT NULL IDENTITY(1,1), CustomerAge int, FeaturesLiked varchar(300) NOT NULL, CONSTRAINT [PK_CarOrder] PRIMÆR NØGLE ([CarOrderId])) - - (2) Tilføj data til tabellenSET IDENTITY_INSERT [dbo].[CarOrder] ONINSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (1, 27, N'Traction Control System , Lane Change Alert, Bakke parkeringssensor, Startknap, Avanceret fartpilot, DAB Radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (2, 43, N' Avanceret blokeringsfri bremsesystem, startspærre, firehjulstræk, startknap, avanceret fartpilot, DAB-radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (3, 33, N'Traction Control System, Startspærre, Hill Assist, Auto Climate Control, Avanceret fartpilot, DAB Radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (4, 35, N'Isofix-barnesædebeslag, vognbaneskiftsalarm, kollisionsdetektion, startknap, avanceret fartpilot, bil-wifi')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [ Funktioner, der kan lide]) VÆRDIER (5, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Bakke parkeringssensor, Auto Climate Control, Avanceret fartpilot, Bil Wifi')INDSÆT I [dbo].[CarOrder] ([CarOrderId] ], [CustomerAge], [FeaturesLiked]) VÆRDIER (6, 27, N'Touch Sensor, Lane Change Alert, Børnesikkerhedslås, Auto Climate Control, Avanceret fartpilot, DAB Radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (7, 33, N'Traction Control System, Lane Change Alert, Bakke parkeringssensor, Navigationssystem, Avanceret fartpilot, USB-tilslutning')INSERT INTO [dbo]. [CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (8, 33, N'Advanced Anti-lock Braking System, Lane Change Alert, Kollisionsdetektion, Navigationssystem, Avanceret fartpilot, DA B Radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (9, 20, N'Traction Control System, Avancerede skivebremser, Børnesikkerhedslås, Navigationssystem, Avanceret Fartpilot, DAB Radio')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (10, 27, N'Isofix barnesædebeslag, Fjernlåsning, Dæktryksalarm, Start Knap, Avanceret fartpilot, DAB Radio')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (11, 46, N'Isofix barnesædebeslag, Startspærre, Firehjulstrækker , Startknap, Avanceret fartpilot, Bluetooth')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (12, 46, N'Traction Control System, Startspærre, Kollisionsdetektion, Navigationssystem, avanceret fartpilot, DAB-radio')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (13, 33, N'Advanced Anti-lock Braking System, Lane Change) Alarm, Hill Ass ist, Auto Climate Control, Avanceret fartpilot, Bluetooth')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (14, 33, N'Traction Control System, Lane Change Alert , Dæktryksalarm, Startknap, Avanceret fartpilot, Bluetooth')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (15, 40, N'Isofix barnesædebeslag, Lane Change Alert, Hill Assist, Start-knap, Avanceret fartpilot, DAB-radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (16, 33, N'Isofix barn sædebeslag, startspærre, firehjulstræk, automatisk klimakontrol, avanceret fartpilot, Bluetooth')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (17, 27, N' Berøringssensor, vognbaneskiftsalarm, firehjulstræk, automatisk klimakontrol, avanceret fartpilot, bil-Wi-Fi')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FunktionerLiked]) VÆRDIER (18, 18) , N'Touch Sensor, L ane Change Alert, Collision Detection, Start Button, Advanced Cruise Control, DAB Radio')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (19, 33, N'Isofix child) sædebeslag, Lane Change Alert, Bakke parkeringssensor, Navigationssystem, Avanceret fartpilot, USB-forbindelse')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VALUES (20, 33, N'Advanced ABS-bremsesystem, Avancerede skivebremser, Børnesikkerhedslås, Auto Climate Control, Avanceret fartpilot, Bil Wifi')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked] ) VÆRDIER (21, 27, N'Advanced Anti-lock Braking System, Startspærre, Børnesikkerhedslås, Startknap, Avanceret fartpilot, Bluetooth')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (22, 43, N'Advanced ABS-bremsesystem, Avancerede skivebremser, Parkeringssensor til bakgear, Auto Climate Control, Avanceret Fartpilot, Bluetooth')INSERT INTO [db o].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (23, 33, N'Advanced Anti-lock Braking System, Startspærre, Børnesikkerhedslås, Navigationssystem, Avanceret fartpilot, Bluetooth') INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (24, 46, N'Advanced Anti-lock Braking System, Fjernlåsning, Firehjulstræk, Auto Climate Control, Advanced Cruise Kontrol, USB-forbindelse')INSERT INTO [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (25, 43, N'Touch Sensor, Lane Change Alert, Hill Assist, Navigation System, Advanced Fartpilot, USB-forbindelse')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (26, 32, N'Advanced Anti-lock Braking System, Startspærre, Bakke parkeringssensor, Navigationssystem, avanceret fartpilot, Bluetooth')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (27, 32, N'Isofix barnesædebeslag, startspærre, firehjulsdrift e, automatisk klimakontrol, avanceret fartpilot, bil-wifi')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (28, 26, N'Touch Sensor, Lane Change Alert , Hill Assist, Startknap, Avanceret fartpilot, DAB Radio')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (29, 43, N'Traction Control System, Lane Skift alarm, børnesikkerhedslås, startknap, avanceret fartpilot, USB-forbindelse')INDSÆT I [dbo].[CarOrder] ([CarOrderId], [CustomerAge], [FeaturesLiked]) VÆRDIER (30, 26, N'Touch Sensor) , Fjernlåsning, Parkeringssensor bak, Navigationssystem, Avanceret fartpilot, Bluetooth')SET IDENTITY_INSERT [dbo].[CarOrder] OFF;GO 

Identificer produktet

Eksemplet CarPlus databasen indeholder følgende information, som er gemt i en enkelt tabel for at forenkle databasens strukturelle kompleksitet og for helt at fokusere på produktanalyse:

  1. Ordrenummer (for den købte bil)
  2. Alder på kunden, der køber produktet (bilen)
  3. Funktioner (i bilen), som kunden kunne lide

Bemærk venligst, at det produkt, vi har valgt til analysen i denne artikel, er bilen købt af en kunde.

Vi kan dog være mere interesserede i de funktioner, kunden kunne lide, da han købte bilen, fordi disse funktioner har afgørende information for virksomheden.

CarOrder tabel i databasen er repræsenteret som følger:

Opret et fuldtekstkatalog

Det første trin, når prøvedatabasen (CarPlus) er blevet oprettet og udfyldt med succes, er at oprette et fuldtekstkatalog.

Dette gør det muligt at implementere fuldtekstsøgning.

Opret et fuldtekstkatalog ved at køre følgende T-SQL-script mod prøvedatabasen:

-- Opret fuldtekstkatalog OPRET FULDTEKSTKATALOG CarCatalog SOM STANDARD; GÅ  

Definer et fuldtekstindeks i kolonnen FeaturesLiked

Siden Likede funktioner kolonne vil være den centrale kolonne, der bruges i produktanalyse, skal vi definere et fuldtekstindeks på den for at køre fuldtekstforespørgsler.

Skriv følgende T-SQL-script for at definere et fuldtekstindeks:

-- Definer fuldtekstindeks på funktionerLikedCREATE FULLTEXT INDEX PÅ dbo.CarOrder(FeaturesLiked) KEY INDEX PK_CarOrder MED STOPLIST =SYSTEM; GÅ

Bemærk venligst, at du kun kan definere et fuldtekstindeks i én kolonne i tabellen, så vælg det meget klogt.

Samlede ordrer efter kundernes alder

Lad os først lave en hurtig analyse for at se, hvor mange biler der blev solgt til kunder, der tilhører en bestemt aldersgruppe, ved at køre følgende script:

--Se samlede ordrer efter kunder alderSELECT CustomerAge,count(CarOrderId) som TotalOrders FROM dbo.CarOrderGROUP BY CustomerAgeORDER BY count(CarOrderId) DESC 

Outputtet er som følger:

Analysen bliver mere interessant, når vi anvender fuldtekstsøgning.

Analyse af børnesikkerhedsfunktioner (Fuldtekstsøgning)

Virksomheden er ivrig efter at kende de børnesikkerhedsfunktioner, som kunderne kunne lide, da de købte bilerne.

Find de 3 bedste børnesikkerhedsfunktioner, som kunderne kunne lide

Lad os først finde top 3 børnesikkerhedsfunktioner, som kunderne kunne lide, da de købte bilen, og dette kan findes ved at bruge fuldtekstsøgning som følger:

--Se Top 3 børnesikkerhedsfunktioner, der kan lide ved hjælp af fuldtekstsøgning. VÆLG TOP 3 O.CarOrderId ,O.CustomerAge ,O.FeaturesLikedFROM dbo.CarOrder OWHERE INDEHOLDER(FeaturesLided, '"*child*"')

Resultaterne er som følger:

Find andre børnesikkerhedsfunktioner end Isofix og sikkerhedslås

Men for at sikre, at dette er de eneste to børnesikkerhedsfunktioner, som de kunder, der købte bilerne (i denne sæson) kunne lide, er vi nødt til at ændre vores fuldtekstforespørgsel for at undersøge, om der er flere børnesikkerhedsfunktioner:

For at finde dette skal du køre følgende fuldtekstsøgning:

--Se andre børnesikkerhedsfunktioner end isofix og sikkerhedslåst, som kunder kan lide.SELECT O.CarOrderId ,O.CustomerAge ,O.FeaturesLikedFROM dbo.CarOrder OWHERE INDEHOLDER(FeaturesLided, '"*Child*" OG IKKE "Child*" OG IKKE "Child*" Sikkerhedslås" OG IKKE "Isofix*"')

Outputtet er som følger:

Oversigt over analyseresultater

I lyset af ovenstående resultater kan vi sagtens sige, at kunden kunne lide følgende børnesikkerhedsfunktioner:

  1. Isofix-barnesædebeslag
  2. Børnesikkerhedslås

Vi står nu tilbage med de to følgende muligheder:

  1. Dette er de eneste børnesikkerhedsfunktioner, som virksomheden tilbyder.
  2. Der var nogle andre børnesikkerhedsfunktioner tilbudt af virksomheden, men kunderne foretrak dem ikke, da de købte bilerne.

Baseret på resultaterne er vi nødt til at sikre, at disse børnesikkerhedsfunktioner ikke vil blive erstattet eller udelukket i den næste sæson, da de ser ud til at være et stærkt salgsargument for virksomheden.

Analyse af bremsefunktioner

Den næste ting for virksomheden at se er, hvilken type funktioner relateret til bremser kunderne kunne lide, så den kan fokusere på disse funktioner i det kommende salg.

Søg efter bremsefunktioner, som kunderne kunne lide

For at finde de 5 bedste bremserelaterede funktioner, som kunderne kunne lide, kan vi køre følgende fuldtekstforespørgsel:

-- Søger efter top 5 funktioner relateret til bremser, som kunderne kan lide (fuldtekstforespørgsel)VÆLG TOP 5 O.CustomerAge,O.FeaturesLided FROM dbo.CarOrder OWHERE INDEHOLDER(FeaturesLided,'FORMSOF(BØJNING,bremse) )') 

Outputtet er som følger:

Oversigt over analyseresultater

Som et resultat af Full-Text-forespørgslen ovenfor ved vi nu, at funktionerne relateret til bremser, som kunderne kunne lide på tidspunktet for køb af biler, var som følger:

  1. Avanceret blokeringsfri bremsesystem
  2. Avancerede skivebremser

Det ser ud til, at kunderne i denne sæson valgte de to ovenstående ud af de mange funktioner relateret til bremser, og måske kan nogle flere oplysninger hjælpe virksomheden med at forbedre deres fremtidige beslutninger.

Tillykke, du har med succes lært, hvordan du udfører en produktanalyse ved hjælp af fuldtekstsøgning.

Hold kontakten, da del 2 af denne artikel indeholder en lidt mere avanceret form for produktanalyse ved hjælp af fuldtekstsøgning.

Ting at gøre

Nu hvor du kan lave en produktanalyse med fuldtekstsøgning, kan du prøve følgende:

  1. Prøv at få korreleret information ved at finde de kunder, der kunne lide både bremser og børnesikkerhedsfunktioner, når de købte bilen/bilerne.
  2. Med denne artikel i tankerne, søg efter de kunder, der kunne lide Isofix-barnesædebeslag funktion, men ikke børnesikkerhedslåsen funktion.
  3. Prøv at søge efter de kunder, der ikke kunne lide Avancerede skivebremser men kunne lide Avanceret blokeringsfri bremsesystem .


  1. MySQL-OPDATERING:Top 5 tips til T-SQL-udviklere

  2. Kunne ikke opdatere .mdf-databasen, fordi databasen er skrivebeskyttet (Windows-program)

  3. Sjovt med Djangos nye Postgres-funktioner

  4. Hvordan ændrer jeg en MySQL-kolonne for at tillade NULL?