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

Przeprowadź analizę produktu za pomocą wyszukiwania pełnotekstowego programu SQL Server. Część 1

W tym artykule omówiono, jak przeprowadzić podstawową analizę produktu za pomocą wyszukiwania pełnotekstowego.

Dodatkowo czytelnicy poznają kilka praktycznych przykładów analizy produktów pod kątem sprzedaży za pomocą zapytań pełnotekstowych.

W skrócie, ten artykuł podkreśla znaczenie wyszukiwania pełnotekstowego, które zapewnia wgląd w dane, a także odpowiada na wiele zapytań sprzedażowych z biznesowego punktu widzenia bez potrzeby stosowania bardziej wyrafinowanych metodologii, które jednak mają swoje zalety.

O analizie produktu

Przyjrzyjmy się najpierw analizie produktu.

Co to jest analiza produktu?

Analiza produktu z biznesowego punktu widzenia to metoda analizy Twojego produktu i jego sprzedaży (danych) w taki sposób, aby pomóc Ci zrozumieć mocne i słabe strony Twojego produktu.

Na przykład najwyższe kierownictwo firmy sprzedającej samochody może chcieć znać wszystkie funkcje samochodu związane z bezpieczeństwem, zabezpieczeniami i czujnikami, aby uczynić go silnym punktem sprzedaży ich samochodu.

Innym przykładem jest sytuacja, w której firma może być zainteresowana, aby zobaczyć wszystkie produkty sprzedawane w porze deszczowej, które zawierają słowa „deszcz”, „wodoodporny” lub „wodoodporny” (w opisie), aby zrozumieć, czy klienci chcą kupić jakieś nowe produkty na deszcz sezon (od nich) czy nie.

Dlaczego konieczna jest analiza produktu?

Analiza produktu jest kluczem do pomyślnego prowadzenia biznesu i może pomóc wydobyć plusy i minusy biznesu.

Może również pomóc firmie w podejmowaniu lepszych decyzji na podstawie istniejących zakupów.

Poza tym analiza produktu może pomóc firmie w zrozumieniu trendów biznesowych i kierunku, w którym zmierzają.

Jak przeprowadzić analizę produktu?

Po pierwsze, podstawowym sposobem analizy produktu jest uruchamianie zapytań SQL w bazie danych zawierającej produkt i jego dane sprzedaży.

Jednak lepszym sposobem na uzyskanie większej ilości informacji jest użycie wyszukiwania pełnotekstowego do wyszukiwania w bazie danych sprzedaży, ponieważ oferuje ona ulepszone kryteria wyszukiwania, które nie są dostępne w ogólnych zapytaniach SQL.

Analiza produktu z ograniczeniem wyszukiwania pełnotekstowego

Chociaż za pomocą wyszukiwania pełnotekstowego można przeprowadzić dość dobrą analizę produktu, ma to swoje ograniczenia.

Aby uzyskać bardziej elastyczną i dogłębną analizę oraz raportowanie danych w oparciu o specjalnie zbudowaną infrastrukturę, musisz opracować rozwiązanie Business Intelligence Data Warehouse.

Wymagania wstępne

Przejdź przez wymagania wstępne, aby przeprowadzić analizę produktu za pomocą wyszukiwania pełnotekstowego, które pojawi się w dalszej części tego artykułu.

Silne umiejętności T-SQL

Ten artykuł oczekuje, że czytelnicy (zamierzający wdrożyć analizę produktu) będą mieli silne umiejętności T-SQL i będą mogli wygodnie pisać i uruchamiać zapytania SQL w bazach danych.

Podstawowe i zaawansowane zrozumienie wyszukiwania pełnotekstowego

W artykule założono, że czytelnicy, którzy zamierzają zaimplementować przewodnik za pomocą wyszukiwania pełnotekstowego, dość dobrze rozumieją wyszukiwanie pełnotekstowe i jego zastosowania.

Zapoznaj się z artykułem Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla zaawansowanych użytkowników, aby uzyskać zaawansowany poziom zrozumienia funkcji wyszukiwania pełnotekstowego, jeśli znasz już jego podstawy.

Zapoznaj się jednak z artykułem Implementacja wyszukiwania pełnotekstowego w SQL Server 2016 dla początkujących, jeśli chcesz uzyskać podstawową wiedzę przed rozpoczęciem zaawansowanych zastosowań wyszukiwania pełnotekstowego.

Zainstalowano wyszukiwanie pełnotekstowe

Poza tym ten artykuł oczekuje, że masz już zainstalowane wyszukiwanie pełnotekstowe na twojej instancji SQL.

Zainstaluj wyszukiwanie pełnotekstowe na serwerze SQL w następujący sposób:

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

Zapoznaj się z artykułem Implementing Full-Text Search w SQL Server 2016 dla początkujących, aby uzyskać szczegółowe informacje na temat kroków wymienionych powyżej.

Na koniec sprawdź stan wyszukiwania pełnotekstowego, uruchamiając następujący skrypt T-SQL w głównej bazie danych:

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

Dane wyjściowe powinny wyglądać następująco (jeśli wyszukiwanie pełnotekstowe zostało pomyślnie zainstalowane):

Przygotowywanie wyszukiwania pełnotekstowego do analizy produktu

Przygotuj się do uruchomienia zapytań pełnotekstowych w celu przeprowadzenia analizy produktu po skonfigurowaniu przykładowej bazy danych.

Skonfiguruj przykładową bazę danych (CarPlus)

Skonfiguruj przykładową bazę danych o nazwie CarPlus w następujący sposób:

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

Zidentyfikuj produkt

Przykładowy CarPlus baza danych zawiera następujące informacje, które są przechowywane w jednej tabeli w celu uproszczenia strukturalnej złożoności bazy danych i całkowitego skupienia się na analizie produktu:

  1. Numer zamówienia (dla zakupionego samochodu)
  2. Wiek klienta kupującego produkt (samochód)
  3. Funkcje (samochodu), które podobały się klientowi

Należy pamiętać, że produkt, który wybraliśmy do analizy w tym artykule, to samochód zakupiony przez klienta.

Możemy być jednak bardziej zainteresowani funkcjami, które klient lubił kupując samochód, ponieważ te cechy mają kluczowe znaczenie dla biznesu.

Zamówienie karty tabela bazy danych jest reprezentowana w następujący sposób:

Utwórz katalog pełnotekstowy

Pierwszym krokiem po pomyślnym utworzeniu i zapełnieniu przykładowej bazy danych (CarPlus) jest utworzenie katalogu pełnotekstowego.

Umożliwia to wdrożenie wyszukiwania pełnotekstowego.

Utwórz katalog pełnotekstowy, uruchamiając następujący skrypt T-SQL w przykładowej bazie danych:

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

Zdefiniuj indeks pełnotekstowy w kolumnie Lubiane funkcje

Od Funkcje lubiane kolumna będzie centralną kolumną używaną w analizie produktu, musimy zdefiniować na niej indeks pełnotekstowy, aby uruchamiać zapytania pełnotekstowe.

Napisz następujący skrypt T-SQL, aby zdefiniować indeks pełnotekstowy:

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

Pamiętaj, że indeks pełnotekstowy można zdefiniować tylko w jednej kolumnie tabeli, dlatego wybierz go bardzo mądrze.

Łączna liczba zamówień według wieku klientów

Przeprowadźmy najpierw szybką analizę, aby zobaczyć, ile samochodów sprzedano klientom należącym do określonej grupy wiekowej, uruchamiając następujący skrypt:

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

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

Analiza stanie się bardziej interesująca, gdy zastosujemy wyszukiwanie pełnotekstowe.

Analiza funkcji bezpieczeństwa dzieci (wyszukiwanie pełnotekstowe)

Firma chętnie pozna funkcje bezpieczeństwa dzieci, które podobały się klientom, kiedy kupowali samochody.

Znajdowanie 3 najlepszych funkcji bezpieczeństwa dzieci, które podobały się klientom

Najpierw znajdźmy 3 najważniejsze funkcje bezpieczeństwa dzieci, które podobały się klientom przy zakupie samochodu, a można je znaleźć za pomocą wyszukiwania pełnotekstowego w następujący sposób:

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

Wyniki są następujące:

Znajdowanie zabezpieczeń dla dzieci innych niż Isofix i blokada bezpieczeństwa

Aby jednak upewnić się, że są to jedyne dwa zabezpieczenia przed dziećmi, które spodobały się klientom, którzy kupili samochody (w tym sezonie), musimy zmodyfikować nasze zapytanie pełnotekstowe, aby sprawdzić, czy są jeszcze jakieś zabezpieczenia przed dziećmi:

Aby to znaleźć, uruchom następujące zapytanie wyszukiwania pełnotekstowego:

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

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

Podsumowanie wyników analizy

W świetle powyższych wyników możemy łatwo powiedzieć, że klientowi spodobały się następujące funkcje bezpieczeństwa dzieci:

  1. Okucia do fotelików dziecięcych ISOFIX
  2. Zabezpieczenie przed dziećmi

Pozostały nam teraz dwie następujące możliwości:

  1. Są to jedyne funkcje bezpieczeństwa dzieci oferowane przez firmę.
  2. Istniało kilka innych funkcji bezpieczeństwa dzieci oferowanych przez firmę, ale klienci nie preferowali ich przy zakupie samochodów.

Na podstawie wyników musimy upewnić się, że te zabezpieczenia dla dzieci nie zostaną zastąpione ani wykluczone w następnym sezonie, ponieważ wydają się być mocnym punktem sprzedaży dla firmy.

Analiza funkcji hamulców

Następną rzeczą, którą firma musi zobaczyć, jest rodzaj funkcji związanych z hamulcami, które podobają się klientom, aby mogła skupić się na tych funkcjach w nadchodzącej sprzedaży.

Wyszukaj funkcje hamulców, które podobały się klientom

Aby znaleźć 5 najważniejszych funkcji związanych z hamulcami, które podobały się klientom, możemy uruchomić następujące zapytanie pełnotekstowe:

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

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

Podsumowanie wyników analizy

W wyniku powyższego zapytania pełnotekstowego wiemy teraz, że funkcje związane z hamulcami, które klienci lubili w momencie kupowania samochodów, były następujące:

  1. Zaawansowany system przeciwblokujący
  2. Zaawansowane hamulce tarczowe

Wygląda na to, że spośród wielu funkcji związanych z hamulcami w tym sezonie klienci wybrali dwie powyższe i być może więcej informacji może pomóc firmie w usprawnieniu przyszłych decyzji.

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

Pozostań w kontakcie, ponieważ część 2 tego artykułu zawiera nieco bardziej zaawansowaną formę analizy produktu przy użyciu wyszukiwania pełnotekstowego.

Rzeczy do zrobienia

Teraz, gdy możesz przeprowadzić analizę produktu za pomocą wyszukiwania pełnotekstowego, wypróbuj następujące rozwiązania:

  1. Spróbuj uzyskać skorelowane informacje, znajdując klientów, którzy przy zakupie samochodu lubili zarówno hamulce, jak i zabezpieczenia dla dzieci.
  2. Mając na uwadze ten artykuł, wyszukaj klientów, którym spodobały się mocowania fotelików dziecięcych Isofix funkcja, ale nie Zabezpieczenie przed dziećmi funkcja.
  3. Spróbuj wyszukać klientów, którym nie spodobały się Zaawansowane hamulce tarczowe ale podobał mi się Zaawansowany system przeciwblokujący .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskiwanie ostrzeżenia:wartość Null jest eliminowana przez agregację lub inną operację SET

  2. Rozwiązywanie problemów z błędem Microsoft SQL Server 18456

  3. Instalacja SQL Server 2017 krok po kroku -2

  4. Co to jest domyślne ograniczenie w programie SQL Server — samouczek dotyczący programu SQL Server / TSQL — część 90

  5. Jak zwrócić wyniki zapytania jako listę oddzieloną przecinkami w SQL Server — STRING_AGG()