Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Извършете анализ на продукта с помощта на пълнотекстово търсене на SQL Server. Част 1

Тази статия разглежда как да извършите основен анализ на продукта с помощта на пълнотекстово търсене.

Освен това читателите ще научат някои практически примери за анализ на продукти по отношение на продажбите с помощта на пълнотекстови заявки.

Накратко, тази статия подчертава важността на пълнотекстово търсене, предоставяйки представа за данните, заедно с отговорите на много запитвания за продажби от гледна точка на бизнеса, без да е необходимо да се приемат по-сложни методологии, които обаче имат своите предимства.

Относно продуктовия анализ

Нека първо разгледаме продуктовия анализ.

Какво е продуктов анализ?

Продуктовият анализ от гледна точка на бизнеса е методът за анализиране на вашия продукт и неговите продажби (данни) по такъв начин, че да ви помогне да разберете силните и слабите страни на вашия продукт.

Например висшият мениджмънт на компания за продажба на автомобили може да иска да знае всички характеристики на автомобила, свързани с безопасността, сигурността и сензорите, за да го направи силна търговска точка за своя автомобил.

Друг пример е, когато бизнесът може да се интересува да види всички продукти, продавани по време на дъждовен сезон, които съдържат „дъжд“, „устойчив на душ“ или „водоустойчив“ (в описанието), за да разбере дали клиентите искат да купят нови продукти за дъждовно време. сезон (от тях) или не.

Защо е необходим анализ на продукта?

Анализът на продуктите е ключът към успешно функциониращ бизнес и може да помогне да се разкрият плюсовете и минусите на бизнеса.

Освен това може да помогне на бизнеса да взема по-добри решения въз основа на съществуващите покупки.

Освен това, продуктовият анализ може да помогне на бизнеса да разбере бизнес тенденциите и посоката, по която се движат.

Как да извършим продуктов анализ?

От една страна, основният начин за анализиране на вашия продукт е чрез изпълнение на SQL заявки към базата данни, която съдържа продукта и данните за неговите продажби.

Все пак, по-добър начин да получите повече информация е да използвате пълнотекстово търсене, за да направите заявка за вашата база данни за продажби, тъй като предлага подобрени критерии за търсене, които не са налични в общите SQL заявки.

Продуктов анализ с ограничение за пълнотекстово търсене

Въпреки че може да се извърши значително добър анализ на продукт с пълнотекстово търсене, той има свои собствени ограничения.

За по-гъвкав и задълбочен анализ и отчитане на вашите данни, подкрепени от специално изградена инфраструктура, трябва да разработите решение за съхранение на данни Business Intelligence.

Предварителни условия

Моля, прегледайте предпоставките, за да извършите анализ на продукта с помощта на пълнотекстово търсене, което ще се появи по-късно в тази статия.

Силни T-SQL умения

Тази статия очаква читателите (с намерение да внедрят продуктовия анализ) да имат силни T-SQL умения и да могат удобно да пишат и изпълняват SQL заявки към базата(ите)(и).

Основно и разширено разбиране на пълнотекстово търсене

Статията предполага, че читателите, които възнамеряват да приложат ръководството с помощта на пълнотекстово търсене, имат доста добро разбиране за пълнотекстово търсене и неговото използване.

Моля, вижте статията Внедряване на пълнотекстово търсене в SQL Server 2016 за напреднали потребители, за да получите разбиране на напреднало ниво за пълнотекстово търсене, ако вече сте запознати с неговите основи.

Въпреки това, моля, прегледайте статията Внедряване на пълнотекстово търсене в SQL Server 2016 за начинаещи, ако трябва да развиете основно разбиране, преди да започнете с разширено използване на пълнотекстово търсене.

Инсталирано е пълнотекстово търсене

Освен това тази статия очаква да имате вече инсталирано пълнотекстово търсене на вашия SQL екземпляр.

Моля, инсталирайте пълнотекстово търсене на SQL сървър, както следва:

  1. Изпълнете SQL Installer.
  2. Изпълнете инсталационния файл.
  3. Добавяне като функция.
  4. Изберете текущия си сървър.
  5. Изберете функция на екземпляра, която да бъде добавена.

Моля, вижте статията Внедряване на пълнотекстово търсене в SQL Server 2016 за начинаещи, за да получите подробна информация за стъпките, споменати по-горе.

Накрая проверете състоянието на пълнотекстово търсене, като изпълните следния T-SQL скрипт срещу основната база данни:

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

Резултатът трябва да бъде както следва (ако пълнотекстово търсене е инсталирано успешно):

Подготовка на пълнотекстово търсене за анализ на продукта

Подгответе се да стартирате пълнотекстови заявки за извършване на анализ на продукта, след като настроите примерна база данни.

Настройте примерна база данни (CarPlus)

Моля, създайте примерна база данни, наречена CarPlus както следва:

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

Идентифицирайте продукта

Мострата CarPlus базата данни съдържа следната информация, която се съхранява в една таблица, за да опрости структурната сложност на базата данни и да се съсредоточи изцяло върху анализа на продукта:

  1. Номер на поръчка (за закупения автомобил)
  2. Възрастта на клиента, купуващ продукта (кола)
  3. Характеристики (на автомобила), които клиентът е харесал

Моля, имайте предвид, че продуктът, който сме избрали за анализа в тази статия, е автомобилът, закупен от клиент.

Въпреки това, може да се интересуваме повече от функциите, които клиентът е харесал, когато е купил колата, защото тези функции имат важна информация за бизнеса.

CarOrder таблицата на базата данни е представена, както следва:

Създайте каталог с пълен текст

Първата стъпка, след като примерната база данни (CarPlus) бъде създадена и попълнена успешно, е да създадете пълнотекстов каталог.

Това позволява да се приложи пълнотекстово търсене.

Моля, създайте пълен текстов каталог, като изпълните следния T-SQL скрипт срещу примерната база данни:

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

Дефинирайте индекс с пълен текст в колоната FeaturesLiked

Отхаресани функции колоната ще бъде централната колона, използвана в анализа на продукта, трябва да дефинираме пълнотекстов индекс върху нея, за да изпълняваме пълнотекстови заявки.

Напишете следния T-SQL скрипт, за да дефинирате пълнотекстов индекс:

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

Моля, имайте предвид, че можете да дефинирате индекс на пълен текст само в една колона на таблицата, така че моля, изберете го много разумно.

Общо поръчки според възрастта на клиентите

Нека първо направим бърз анализ, за ​​да видим колко коли са продадени на клиенти, принадлежащи към определена възрастова група, като изпълним следния скрипт:

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

Резултатът е както следва:

Анализът ще стане по-интересен, когато приложим пълнотекстово търсене.

Анализ на функциите за безопасност на децата (търсене в пълен текст)

Бизнесът желае да научи функциите за безопасност на децата, които клиентите са харесали, когато са купили колите.

Намиране на 3 най-добри функции за безопасност на децата, които клиентите са харесали

Нека първо намерим 3-те най-добри функции за безопасност на децата, които клиентите са харесали, когато са закупили колата, и това може да бъде намерено чрез използване на пълнотекстово търсене, както следва:

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

Резултатите са както следва:

Намиране на функции за безопасност на децата, различни от Isofix и Safety Lock

Въпреки това, за да сме сигурни, че това са единствените две функции за безопасност на децата, които клиентите, закупили колите (през този сезон), са харесали, трябва да модифицираме нашата заявка за пълен текст, за да проверим дали има още функции за безопасност на децата:

За да намерите това, изпълнете следната заявка за пълнотекстово търсене:

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

Резултатът е както следва:

Резюме на резултатите от анализа

В светлината на резултатите по-горе можем лесно да кажем, че клиентът е харесал следните функции за безопасност на децата:

  1. Фонтури за детски столчета Isofix
  2. Заключване за безопасност за деца

Сега ни остават следните две възможности:

  1. Това са единствените функции за безопасност на децата, които бизнесът предлага.
  2. Имаше някои други функции за безопасност на децата, предлагани от бизнеса, но клиентите не ги предпочитаха при закупуване на колите.

Въз основа на резултатите трябва да се уверим, че тези функции за безопасност на децата няма да бъдат заменени или изключени през следващия сезон, тъй като изглежда, че са силна търговска точка за бизнеса.

Анализ на характеристиките на спирачките

Следващото нещо, което бизнесът трябва да види, е какъв тип функции, свързани със спирачките, харесват клиентите, за да може да се съсредоточи върху тези функции в предстоящите продажби.

Търсете функции на спирачките, които клиентите са харесали

За да открием топ 5 функции, свързани със спирачките, които клиентите харесаха, можем да изпълним следната заявка за пълен текст:

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

Резултатът е както следва:

Резюме на резултатите от анализа

В резултат на заявката за пълен текст по-горе, сега знаем, че функциите, свързани със спирачките, които клиентите са харесали по време на закупуването на автомобили, са следните:

  1. Усъвършенствана антиблокираща спирачна система
  2. Усъвършенствани дискови спирачки

Изглежда, че от многото функции, свързани със спирачките, този сезон клиентите избраха двете по-горе и може би малко повече информация може да помогне на бизнеса да подобри бъдещите си решения.

Поздравления, успешно се научихте как да извършвате анализ на продукти с помощта на пълнотекстово търсене.

Поддържайте връзка, тъй като част 2 на тази статия съдържа малко по-усъвършенствана форма на анализ на продукти с помощта на пълнотекстово търсене.

Неща за правене

Сега, когато можете да направите анализ на продукта с пълнотекстово търсене, опитайте следното:

  1. Опитайте се да получите свързана информация, като намерите клиентите, които са харесали както спирачките, така и функциите за безопасност на децата, когато купуват автомобила(ите).
  2. Имяйки предвид тази статия, потърсете клиентите, които са харесали Фиксовете за детски седалки Isofix функция, но не и Заключване за безопасност за деца функция.
  3. Опитайте се да потърсите клиентите, които не са харесали Разширени дискови спирачки но ми хареса Усъвършенствана антиблокираща спирачна система .


  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 (T-SQL)

  2. Sql заявка за дървовидна таблица

  3. Как мога да вмъкна данни от двоичен файл в двоично SQL поле с помощта на прост оператор за вмъкване?

  4. Създаване на Trigger за регистриране на SQL тази засегната таблица?

  5. Сравнете два реда и идентифицирайте колони, чиито стойности са различни