Dieser Artikel widmet sich einer etwas komplexeren Produktanalyse mit Volltextsuche im Gegensatz zum ersten Teil, in dem wir uns mit der Durchführung einer grundlegenden Produktanalyse beschäftigt haben.
Hier werden die Leser einige umfassende Beispiele zur Produktanalyse aus Verkaufssicht mit Hilfe von Volltextabfragen umsetzen.
Dieser Artikel entfaltet die Stärke von Volltextabfragen in Verbindung mit Analysefunktionen bei der Durchführung einer Produktanalyse.
Voraussetzungen
Ich schlage vor, dass Sie die Voraussetzungen dieses Artikels durchgehen, bevor Sie mit der Implementierung von Produktanalysebeispielen beginnen.
Teil 1. Grundlagen
Wir gehen davon aus, dass Sie Erfahren Sie, wie Sie eine Produktanalyse mit der SQL Server-Volltextsuche durchführen. Teil 1 und sind in der Lage, anhand der im ersten Teil genannten Beispiele eine grundlegende Produktanalyse durchzuführen.
Verständnis von T-SQL und Volltextsuche
Um sich beim Lesen dieses Artikels wohl zu fühlen, empfehlen wir den Lesern ein gutes Verständnis von T-SQL-Skripten und der Volltextsuche.
Unter Implementing Full-Text Search in SQL Server 2016 for Advanced Users (Implementieren der Volltextsuche in SQL Server 2016 für fortgeschrittene Benutzer) erhalten Sie ein fortgeschrittenes Verständnis der Volltextsuche, sofern Sie bereits mit den Grundlagen vertraut sind. Dennoch empfehlen wir, den Artikel Implementing Full-Text Search in SQL Server 2016 für Anfänger zu lesen, wenn Sie ein grundlegendes Verständnis entwickeln müssen, bevor Sie mit der erweiterten Verwendung der Volltextsuche fortfahren.
Volltextsuche installiert
Um erfolgreich mit dem Artikel fortzufahren, stellen Sie sicher, dass Sie die Volltextsuche auf Ihrer SQL-Instanz installiert haben.
Befolgen Sie diese Schritte, um die Volltextsuche auf dem SQL-Server zu installieren:
- Führen Sie das SQL-Installationsprogramm aus.
- Setup-Datei ausführen.
- Als Feature hinzufügen.
- Wählen Sie Ihren aktuellen Server.
- Hinzuzufügende Instanzfunktion auswählen.
Weitere Informationen finden Sie auch im Artikel Implementieren der Volltextsuche in SQL Server 2016 für Anfänger um detaillierte Informationen zu den oben genannten Schritten zu erhalten.
Beispieldatenbank (CarPlus)
Folgen Sie den Anweisungen im ersten Teil, wenn Sie die Beispieldatenbank noch nicht eingerichtet haben. Beachten Sie, dass Sie das CarPlus einrichten müssen Beispieldatenbank zum Implementieren der Beispiele in diesem Artikel.
Volltextkatalog und Volltextindex
Wir erwarten außerdem, dass Sie den Volltextkatalog und den Volltextindex in der Spalte FeaturesLiked definieren.
Weitere Informationen finden Sie unter Erfahren Sie, wie Sie Produktanalysen mit der SQL Server-Volltextsuche durchführen. Teil 1 um die obigen Schritte auszuführen, es sei denn, Sie haben sie bereits ausgeführt.
Analyse 1:Volltextsuche nach Sensoren
Nehmen wir an, wir hatten mehrere sofort einsatzbereite Sensoren, die mit dem Auto geliefert wurden, und jetzt möchte das Top-Management die folgenden Dinge wissen:
- Haben die Kunden, die die Autos gekauft haben, wie irgendwelche sofort einsatzbereiten Sensoren?
- Welche Art von Sensoren mochten sie?
- Wie viele Sensoren eines bestimmten Typs mochten sie?
- Können wir all die verschiedenen Sensoren vergleichen, die den Kunden gefallen haben?
Antworten auf all diese Fragen finden Sie mit Hilfe der Volltextsuche.
Suche nach Sensoren, die von Kunden bevorzugt werden
Um zu wissen, ob den Kunden bei der Bestellung einer der Autosensoren gefallen hat, müssen wir eine Volltextabfrage wie folgt durchführen:
--View Orders where customers liked Sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor')
Sie sehen dann die folgenden Ergebnisse:
Eines ist sicher:Die Kunden mochten beim Kauf ihres Autos Out-of-the-Box-Sensoren. Das liegt daran, dass die Volltextsuche für Sensoren eine Reihe von Ergebnissen zurückgegeben hat.
Die Suche informiert, dass wir mindestens zwei Arten von Sensoren haben, die den Kunden gefallen haben:
- Berührungssensor
- Rückwärtsparksensor
Man kann mit Sicherheit sagen, dass den Kunden zumindest die oben genannten Sensortypen gefallen haben.
Suche nach allen von Kunden bevorzugten Parksensoren
Jetzt müssen wir die Volltextsuche verwenden, um alle Arten von Parksensoren zu finden die unseren Kunden gefallen haben.
Wir können dies herausfinden, indem wir NEAR mit den folgenden Suchbegriffen verwenden (wie folgt):
--View Orders where customers liked parking sensors
SELECT
FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor NEAR Parking')
Die Ausgabe sieht wie folgt aus:
Als Ergebnis scheint es sieben solcher Fälle zu geben, in denen Kunden Parksensor mochten . Wir müssen jedoch tiefer gehen, um mehr Informationen zu erhalten.
Suche nach anderen Sensoren als den von Kunden bevorzugten Parksensoren
Nun möchten wir die andere Seite der Geschichte kennenlernen, nämlich herausfinden, welche Kunden die Sensoren außer Parksensor mochten .
Verwenden Sie die folgende Volltextabfrage, um nach anderen Sensoren als Parksensor zu suchen, die den Kunden gefallen haben :
--View Orders where customers liked other than parking sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Parking')
Die Ergebnisse der obigen Volltextabfrage lauten wie folgt:
Abgesehen von Parksensor den Kunden gefiel Touch Sensor .
Vergleich von Parksensoren mit Berührungssensoren und mit anderen Sensoren
Das nächste große Ding ist zu sehen, ob wir Parksensor vergleichen können mit Berührungssensor mit anderen Arten von Sensoren, die den Kunden gefallen haben, als sie ihre Bestellung zum Kauf eines Autos aufgegeben haben.
Wir müssen auch die Gesamtzahl der in dieser Saison aufgegebenen Bestellungen kennen, um den Vergleich interessanter zu gestalten.
Dies ist jedoch nicht genug. Wir müssen auch den Prozentsatz der Ähnlichkeit zwischen den Sensoren verstehen.
Dies können Sie über eine Volltextabfrage mit Hilfe von Variablen und T-SQL-Aggregationen wie folgt herausfinden:
DECLARE @TotalParkingSensorLikes INT
DECLARE @TotalTouchSensorLikes INT
DECLARE @TotalOtherSensorLikes INT
DECLARE @TotalOrders INT
SET @TotalOrders=(SELECT COUNT(*) FROM dbo.CarOrder)
SET @TotalParkingSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor NEAR Parking'))
SET @TotalTouchSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor NEAR Touch'))
SET @TotalOtherSensorLikes=(SELECT COUNT(*) FROM dbo.CarOrder WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Touch AND NOT Parking'))
-- Total parking sensors likes vs touch sensors
SELECT @TotalOrders AS TotalOrders,@TotalTouchSensorLikes AS Total_Parking_Sensor_Likes,
(@TotalTouchSensorLikes*100/@TotalOrders) AS PercentLikes,
@TotalParkingSensorLikes AS Total_Touch_Sensor_Likes,
(@TotalParkingSensorLikes*100/@TotalOrders) AS PercentLikes,
@TotalOtherSensorLikes AS Total_Other_Sensor_Likes,
(@TotalOtherSensorLikes*100/@TotalOrders) AS PercentLikes
Die Ausgabe sieht wie folgt aus:
Zusammenfassung der Analyseergebnisse
Wir können daraus schließen, dass die Kunden den Berührungssensor im Auto bevorzugten Funktion über den Rückwärtsparksensor Merkmal. Sie waren jedoch die einzigen Sensoren, die den Kunden gefielen. Und die Funktion, die ihnen am besten gefallen hat, der Berührungssensor, nimmt nur 23 Prozent aller Funktionen ein, die ihnen gefallen haben.
Analyse 2:Volltextsuche für Fahrassistenz und Warnungen
Wenn wir jetzt davon ausgehen, dass der Autohersteller in dieser Saison einige Fahrassistenzfunktionen einschließlich einiger Warnungen eingeführt hat.
Das Unternehmen möchte Folgendes wissen:
- Welche Arten von Fahrwarnungen und Assistenzfunktionen haben den Kunden gefallen?
- Wie vielen Kunden gefiel die Kombination aus Benachrichtigungen und Assistenzfunktionen?
- Können wir eine altersbasierte Analyse der Kunden durchführen, die sowohl Benachrichtigungen als auch Assistenzfunktionen mochten?
Suche nach Fahrwarnungen und Assistenzfunktionen, die von Kunden bevorzugt werden
Wir können mithilfe einer Volltextabfrage nach Fahrwarnungen und Assistenzfunktionen suchen, die den Kunden gefallen haben, aber wir sollten im Hinterkopf behalten, dass das Wort „Erkennen“ kann auch als Alternative zu „Benachrichtigungen“ verwendet werden wie folgt:
--Searching driving alerts and assistance features liked by customers
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) OR FORMSOF(INFLECTIONAL,Alerts)
OR FORMSOF(INFLECTIONAL,Detect)
')
Die Ergebnisse der obigen Volltextabfrage lauten wie folgt:
Mit einer Volltextabfrage haben wir also die Antwort auf die erste Geschäftsfrage zu den von den Kunden bevorzugten Arten von Funktionen und Benachrichtigungen gefunden.
Daraus lässt sich schließen, dass den Kunden die folgenden Arten von Fahrwarnungen und Assistenzfunktionen gefallen:
- Spurwechselwarnung
- Hill Assist
- Kollisionserkennung
- Reifendruckwarnung
Suche nach Kunden, denen alle Fahrwarnungen und Assistenzfunktionen gefallen
Eine etwas kompliziertere Frage besteht darin, herauszufinden, wie vielen Kunden alle Fahrassistenzfunktionen und Warnungen gefallen haben, und dies kann durch eine Volltextabfrage wie folgt beantwortet werden:
--Searching order where both alerts and driving assistance features are liked by customers
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) AND (FORMSOF(INFLECTIONAL,Alerts) OR FORMSOF(INFLECTIONAL,DETECT)
)')
Die Ausgabe sieht wie folgt aus:
Es gibt also vier Bestellungen, bei denen den Kunden sowohl Fahrassistenzfunktionen als auch Warnungen gefallen haben.
Altersbasierte Analyse der Kunden, die Fahrassistenz- und Warnfunktionen mochten
Um weitere Informationen zu erhalten, werden wir versuchen, die Fahrassistenzfunktionen und Warnungen zu verstehen, die den Kunden basierend auf ihrem Alter gefallen.
Sie können dies auch durchführen, indem Sie die Kombination aus einer Volltextabfrage und analytischen Funktionen verwenden, die in T-SQL wie folgt bereitgestellt werden:
-- Age based analysis of customers liking all driving alerts and assistance features
SELECT DISTINCT(CustomerAge),TotalOrders=COUNT(*) OVER (Partition BY CustomerAge),
FIRST_VALUE(CustomerAge) OVER (Order by CustomerAge) as YoungestCustomer,
LAG(CustomerAge,1,0) OVER (ORDER BY CustomerAge) as YoungerCustomerOrSameAge,
LEAD(CustomerAge,1,0) OVER (ORDER BY CustomerAge) as OlderCustomerOrSameAge,
FeaturesLiked as Driving_Assistance_or_Alerts_Features
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked,'FORMSOF(INFLECTIONAL,Assisting) OR FORMSOF(INFLECTIONAL,Alerts)
OR FORMSOF(INFLECTIONAL,Detect)')
ORDER BY TotalOrders DESC
Die Ausgabe sieht wie folgt aus:
Bitte lesen Sie den Artikel The Art of Aggregating Data in SQL from Simple to Sliding Aggregations, um mehr über die Verwendung von Analysefunktionen in T-SQL zu erfahren.
Zusammenfassung der Analyseergebnisse
Angesichts der obigen Analyse mit Volltextsuche wird deutlich, dass die Fahrassistenz- und Fahrwarnfunktionen, die den Kunden gefallen, hauptsächlich zur Altersgruppe der 35-Jährigen gehören.
Den Kunden im Alter von 35 Jahren gefielen diese Funktionen also am besten, während der jüngste Kunde, dem diese Funktionen gefallen, 18 Jahre alt ist.
Der älteste Kunde, dem diese Funktionen gefallen, ist 52 Jahre alt.
Aus der obigen Analyse kann gefolgert werden, dass die meisten Kunden zwischen 18 und 52 Jahren die Fahrassistenz- und Fahrwarnfunktionen genossen, wobei die Kunden, die diese Funktionen mehr als andere mochten, 35 Jahre alt sind.
Herzlichen Glückwunsch, Sie haben erfolgreich gelernt, wie man eine etwas komplexe Produktanalyse mit der Volltextsuche durchführt.
Dinge zu tun
Jetzt, da Sie die Produktanalyse mit der Volltextsuche durchführen können, empfehle ich Ihnen, Folgendes zu versuchen:
- Versuchen Sie, korrelierte Informationen zu erhalten, indem Sie die Kunden finden, die beide Sensoren und die Fahrassistenzfunktionen mochten, aber nicht die Warnungen, als sie das/die Auto(s) kauften.
- Beachten Sie diesen Artikel und suchen Sie nach Kunden, denen die Benachrichtigungen gefallen, aber nicht die Fahrassistenzfunktionen.
- Versuchen Sie, eine altersbasierte Analyse der Kunden für die Sensoren durchzuführen, ähnlich der, die wir für Fahrassistenz- und Warnfunktionen durchgeführt haben.