Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dowiedz się, jak przeprowadzać analizę produktów za pomocą wyszukiwania pełnotekstowego programu SQL Server. Część 2

Ten artykuł jest poświęcony nieco bardziej złożonej analizie produktu za pomocą wyszukiwania pełnotekstowego, w przeciwieństwie do pierwszej części, w której przyjrzeliśmy się, jak przeprowadzić podstawową analizę produktu.

Tutaj czytelnicy zaimplementują obszerne przykłady analizy produktów z punktu widzenia sprzedaży za pomocą zapytań pełnotekstowych.

Ten artykuł przedstawia siłę zapytań pełnotekstowych używanych z funkcjami analitycznymi podczas przeprowadzania analizy produktu.

Wymagania wstępne

Proponuję zapoznać się z warunkami wstępnymi tego artykułu, zanim zaczniesz wdrażać przykłady analizy produktów.

Część 1. Podstawy

Zakładamy, że przeszedłeś Naucz się wykonywać analizę produktu za pomocą wyszukiwania pełnotekstowego programu SQL Server. Część 1 i mieć możliwość wykonania podstawowej analizy produktu za pomocą przykładów wymienionych w pierwszej części.

Zrozumienie T-SQL i wyszukiwania pełnotekstowego

Aby czuć się komfortowo podczas czytania tego artykułu, zalecamy czytelnikom dobre zrozumienie skryptów T-SQL i wyszukiwania pełnotekstowego.

Zapoznaj się z tematem Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla zaawansowanych użytkowników, aby uzyskać zaawansowany poziom zrozumienia funkcji wyszukiwania pełnotekstowego, pod warunkiem, że znasz już jego podstawy. Mimo to zalecamy zapoznanie się z artykułem Implementowanie wyszukiwania pełnotekstowego w SQL Server 2016 dla początkujących, jeśli chcesz uzyskać podstawową wiedzę przed przystąpieniem do zaawansowanych zastosowań wyszukiwania pełnotekstowego.

Zainstalowano wyszukiwanie pełnotekstowe

Aby pomyślnie kontynuować artykuł, upewnij się, że zainstalowałeś wyszukiwanie pełnotekstowe na swojej instancji SQL.

Wykonaj następujące kroki, aby zainstalować wyszukiwanie pełnotekstowe na serwerze SQL:

  1. Uruchom instalator SQL.
  2. Uruchom plik instalacyjny.
  3. Dodaj jako funkcję.
  4. Wybierz swój aktualny serwer.
  5. Wybierz funkcję instancji do dodania.

Możesz również zapoznać się z artykułem Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla początkujących aby uzyskać szczegółowe informacje na temat kroków wymienionych powyżej.

Przykładowa baza danych (CarPlus)

Powinieneś postępować zgodnie z instrukcjami w pierwszej części, jeśli nie skonfigurowałeś jeszcze przykładowej bazy danych. Pamiętaj, że będziesz musiał skonfigurować CarPlus przykładowa baza danych do implementacji przykładów w tym artykule.

Katalog pełnotekstowy i indeks pełnotekstowy

Oczekujemy również, że zdefiniujesz katalog pełnotekstowy i indeks pełnotekstowy w kolumnie FeatureLiked.

Zapoznaj się z Dowiedz się, jak przeprowadzać analizę produktów za pomocą wyszukiwania pełnotekstowego programu SQL Server. Część 1 aby wykonać powyższe kroki, chyba że już je wykonałeś.

Analiza 1:Wyszukiwanie pełnotekstowe czujników

Powiedzmy, że mieliśmy kilka gotowych czujników dostarczonych z samochodem, a teraz najwyższe kierownictwo chce wiedzieć następujące rzeczy:

  1. Czy klienci, którzy kupili samochody, polubili jakiekolwiek gotowe czujniki?
  2. Jakie czujniki im się podobały?
  3. Ile czujników określonego typu im się podobało?
  4. Czy możemy porównać wszystkie różne czujniki, które podobały się klientom?

Możesz znaleźć odpowiedzi na wszystkie te pytania za pomocą wyszukiwania pełnotekstowego.

Wyszukiwanie czujników preferowanych przez klientów

Aby dowiedzieć się, czy klientowi podobał się któryś z czujników samochodu w momencie składania zamówienia, musimy uruchomić zapytanie pełnotekstowe w następujący sposób:

--View Orders where customers liked Sensors
SELECT
CarOrderId
,FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor')

Zobaczysz wtedy następujące wyniki:

Jedno jest pewne:klientom podobały się gotowe czujniki, gdy kupowali swoje samochody. To dlatego, że wyszukiwanie pełnotekstowe czujników zwróciło wiele wyników.

Wyszukiwarka informuje, że mamy co najmniej dwa rodzaje czujników, które podobały się klientom:

  1. Czujnik dotykowy
  2. Czujnik parkowania wstecznego

Można śmiało powiedzieć, że klientom spodobały się przynajmniej wyżej wymienione rodzaje czujników.

Wyszukiwanie wszystkich czujników parkowania preferowanych przez klientów

Teraz musimy użyć wyszukiwania pełnotekstowego, aby znaleźć wszystkie typy czujników parkowania które podobały się naszym klientom.

Możemy to sprawdzić, używając NEAR z następującymi wyszukiwanymi hasłami (jak poniżej):

--View Orders where customers liked parking sensors
SELECT
FeaturesLiked
FROM dbo.CarOrder
WHERE CONTAINS(FeaturesLiked, 'Sensor NEAR Parking')

Dane wyjściowe są następujące:

W rezultacie wydaje się, że istnieje siedem takich przypadków, w których klienci polubili Czujnik parkowania . Jednak musimy sięgnąć głębiej, aby uzyskać więcej informacji.

Wyszukiwanie czujników innych niż czujniki parkowania preferowane przez klientów

Teraz chcielibyśmy poznać drugą stronę historii, to znaczy dowiedzieć się, którzy klienci polubili czujniki inne niż Czujnik parkowania .

Użyj następującego zapytania pełnotekstowego, aby wyszukać czujniki, które podobały się klientom, inne niż Czujnik parkowania :

--View Orders where customers liked other than parking sensors
SELECT 
CarOrderId
,FeaturesLiked 
FROM dbo.CarOrder 
WHERE CONTAINS(FeaturesLiked,'Sensor AND NOT Parking')

Wyniki powyższego zapytania pełnotekstowego są następujące:

Oprócz Czujnika parkowania klienci polubili czujnik dotyku .

Porównanie czujników parkowania z czujnikami dotykowymi i innymi czujnikami

Kolejną ważną rzeczą jest sprawdzenie, czy możemy porównać czujnik parkowania z czujnikiem dotykowym z innymi rodzajami czujników, które podobały się klientom, gdy składali zamówienia na zakup samochodu.

Musimy również znać całkowitą liczbę zamówień złożonych w tym sezonie, aby porównanie było ciekawsze.

To jednak nie wystarczy. Musimy również zrozumieć procent podobieństwa między czujnikami.

Możesz się tego dowiedzieć, używając zapytania pełnotekstowego za pomocą zmiennych i agregacji T-SQL w następujący sposób:

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

Dane wyjściowe można zobaczyć w następujący sposób:

Podsumowanie wyników analizy

Możemy wywnioskować, że klienci woleli samochód czujnik dotykowy funkcja nad czujnikiem parkowania wstecznego funkcja. Były to jednak jedyne czujniki, które podobały się klientom. A funkcja, którą lubili najbardziej, czyli czujnik dotyku, zajmuje tylko 23 procent wszystkich funkcji, które im się podobały.

Analiza 2:Wyszukiwanie pełnotekstowe w zakresie wspomagania prowadzenia pojazdu i alertów

Jeśli teraz założymy, że to właśnie w tym sezonie firma produkująca samochody wprowadziła kilka funkcji wspomagania jazdy, w tym kilka alertów.

Firma chciałaby wiedzieć następujące rzeczy:

  1. Jakie rodzaje alertów dotyczących jazdy i funkcji pomocy podobały się klientom?
  2. Ilu klientom podobało się połączenie alertów i funkcji pomocy?
  3. Czy możemy przeprowadzić analizę opartą na wieku klientów, którym podobały się zarówno alerty, jak i funkcje pomocy?

Wyszukiwanie ostrzeżeń dotyczących jazdy i funkcji pomocy preferowanych przez klientów

Za pomocą zapytania pełnotekstowego możemy wyszukiwać alerty dotyczące jazdy i funkcje pomocy, które podobały się klientom, ale należy pamiętać, że słowo „Wykryj” może być również używany jako alternatywa dla „Alertów” w następujący sposób:

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

Wyniki powyższego zapytania pełnotekstowego są następujące:

Tak więc, korzystając z zapytania pełnotekstowego, znaleźliśmy odpowiedź na pierwsze pytanie biznesowe dotyczące typów funkcji i alertów preferowanych przez klientów.

Można zatem wywnioskować, że klientom podobały się następujące rodzaje ostrzeżeń i funkcji pomocy:

  1. Powiadomienie o zmianie pasa
  2. Asystent wzniesienia
  3. Wykrywanie kolizji
  4. Alert dotyczący ciśnienia w oponach

Wyszukiwanie klientów, którzy lubią wszystkie alerty dotyczące jazdy i funkcje pomocy

Nieco bardziej skomplikowanym pytaniem jest ustalenie, ilu klientom podobały się wszystkie funkcje i alerty wspomagające prowadzenie pojazdu, a na to pytanie można odpowiedzieć za pomocą zapytania pełnotekstowego w następujący sposób:

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

Dane wyjściowe są następujące:

Tak więc są cztery zamówienia, w których klientom podobały się zarówno funkcje wspomagania prowadzenia pojazdu, jak i alerty.

Analiza oparta na wieku klientów, którzy lubili funkcje pomocy w prowadzeniu pojazdu i alertów

Aby uzyskać więcej informacji, postaramy się zrozumieć funkcje wspomagania jazdy i alerty, które podobały się klientom w zależności od ich wieku.

Możesz to również wykonać, używając kombinacji zapytania pełnotekstowego i funkcji analitycznych dostępnych w T-SQL w następujący sposób:

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

Dane wyjściowe są następujące:

Zapoznaj się z artykułem Sztuka agregacji danych w SQL od agregacji prostych do agregacji przesuwnych, aby dowiedzieć się więcej o używaniu funkcji analitycznych w T-SQL.

Podsumowanie wyników analizy

W świetle powyższej analizy z wykorzystaniem wyszukiwania pełnotekstowego jasne jest, że funkcje wspomagania prowadzenia i ostrzegania o prowadzeniu pojazdu, które podobały się klientom, należą głównie do grupy wiekowej 35 lat.

Tak więc klienci w wieku 35 lat najbardziej lubili te funkcje, podczas gdy najmłodszy klient, który je polubił, ma 18 lat.

Najstarszy klient, któremu spodobały się te funkcje, ma 52 lata.

Z powyższej analizy można wywnioskować, że głównie klienci w wieku od 18 do 52 lat korzystali z funkcji wspomagania prowadzenia i ostrzegania o prowadzeniu pojazdu, przy czym klienci, którym podobały się te funkcje bardziej niż inni, mają 35 lat.

Gratulacje, z powodzeniem nauczyłeś się przeprowadzać nieco złożoną analizę produktu za pomocą wyszukiwania pełnotekstowego.

Rzeczy do zrobienia

Teraz, gdy możesz przeprowadzić analizę produktu za pomocą wyszukiwania pełnotekstowego, zachęcam do wypróbowania następujących rozwiązań:

  1. Spróbuj uzyskać skorelowane informacje, znajdując klientów, którym podobały się zarówno czujniki, jak i funkcje wspomagania jazdy, ale nie alerty przy zakupie samochodu.
  2. Mając na uwadze ten artykuł, wyszukaj klientów, którym podobały się alerty, ale nie funkcje wspomagania prowadzenia pojazdu.
  3. Spróbuj przeprowadzić analizę opartą na wieku klientów dla czujników podobnych do tych, które przeprowadziliśmy dla funkcji wspomagania prowadzenia i funkcji ostrzegania.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:WYBIERZ tylko wiersze z MAX(DATE)

  2. Czy GETUTCDATE() zwróci tę samą wartość, jeśli zostanie użyta dwukrotnie w tej samej instrukcji?

  3. Składnia pętli for w SQL Server

  4. Jak uzyskać wartości maksymalne i minimalne z tabeli za pomocą funkcji agregującej — samouczek SQL Server / TSQL, część 129

  5. Automatyczne usuwanie zablokowanych procesów w MS SQL Server