Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tìm hiểu cách Thực hiện Phân tích Sản phẩm với Tìm kiếm Toàn văn của Máy chủ SQL. Phần 2

Bài viết này dành riêng cho phân tích sản phẩm phức tạp hơn một chút với Tìm kiếm toàn văn bản thay vì phần đầu tiên chúng ta xem xét cách thực hiện phân tích sản phẩm cơ bản.

Ở đây, người đọc sẽ triển khai một số ví dụ toàn diện về phân tích sản phẩm theo quan điểm bán hàng với sự trợ giúp của các truy vấn Toàn văn.

Bài viết này cho thấy sức mạnh của truy vấn Toàn văn bản khi được sử dụng với các chức năng phân tích trong việc thực hiện phân tích sản phẩm.

Điều kiện tiên quyết

Tôi khuyên bạn nên xem qua các điều kiện tiên quyết của bài viết này trước khi bắt đầu triển khai các ví dụ phân tích sản phẩm.

Phần 1. Cơ bản

Chúng tôi giả định rằng bạn đã trải qua Tìm hiểu cách thực hiện phân tích sản phẩm bằng cách sử dụng Tìm kiếm toàn văn bản của SQL Server. Phần 1 và có khả năng thực hiện phân tích sản phẩm cơ bản với sự trợ giúp của các ví dụ được đề cập trong phần đầu tiên.

Hiểu biết về T-SQL và Tìm kiếm toàn văn bản

Để cảm thấy thoải mái khi đọc bài viết này, chúng tôi khuyên người đọc nên hiểu rõ về tập lệnh T-SQL và Tìm kiếm toàn văn bản.

Tham khảo Triển khai Tìm kiếm Toàn văn trong SQL Server 2016 dành cho Người dùng Nâng cao để hiểu được cấp độ nâng cao về Tìm kiếm Toàn Văn bản miễn là bạn đã quen thuộc với những điều cơ bản của nó. Tuy nhiên, chúng tôi khuyên bạn nên xem qua bài viết Triển khai tìm kiếm toàn văn bản trong SQL Server 2016 cho người mới bắt đầu nếu bạn cần phát triển hiểu biết cơ bản trước khi tiếp tục sử dụng nâng cao của Tìm kiếm toàn văn bản.

Tìm kiếm toàn văn bản đã được cài đặt

Để tiếp tục thành công bài viết, hãy đảm bảo bạn đã cài đặt Tìm kiếm toàn văn bản trên phiên bản SQL của mình.

Làm theo các bước sau để cài đặt Tìm kiếm toàn văn bản trên máy chủ SQL:

  1. Chạy trình cài đặt SQL.
  2. Chạy tệp thiết lập.
  3. Thêm dưới dạng một Tính năng.
  4. Chọn Máy chủ hiện tại của bạn.
  5. Chọn Tính năng phiên bản để thêm.

Bạn cũng có thể tham khảo bài viết Triển khai tìm kiếm toàn văn bản trong SQL Server 2016 cho người mới bắt đầu để nhận thông tin chi tiết về các bước được đề cập ở trên.

Cơ sở dữ liệu mẫu (CarPlus)

Bạn nên làm theo hướng dẫn trong phần đầu tiên nếu bạn chưa thiết lập cơ sở dữ liệu mẫu. Lưu ý rằng bạn sẽ phải thiết lập CarPlus cơ sở dữ liệu mẫu để triển khai các ví dụ trong bài viết này .

Danh mục toàn văn bản và chỉ mục toàn văn bản

Chúng tôi cũng mong bạn xác định danh mục Toàn văn và chỉ mục Toàn văn trong cột Tính năng được yêu thích.

Vui lòng tham khảo Tìm hiểu cách Thực hiện Phân tích Sản phẩm bằng Tìm kiếm Toàn văn của Máy chủ SQL. Phần 1 để thực hiện các bước trên trừ khi bạn đã hoàn thành chúng.

Phân tích 1:Tìm kiếm toàn văn bản cho cảm biến

Giả sử chúng tôi đã cung cấp một số cảm biến bên ngoài cho ô tô và hiện tại, ban lãnh đạo cao nhất rất muốn biết những điều sau:

  1. Những khách hàng đã mua ô tô có thích bất kỳ cảm biến ngoại thất nào không?
  2. Họ thích loại cảm biến nào?
  3. Họ thích bao nhiêu cảm biến thuộc một loại cụ thể?
  4. Chúng tôi có thể so sánh tất cả các cảm biến khác nhau mà khách hàng thích không?

Bạn có thể tìm thấy câu trả lời cho tất cả những câu hỏi này với sự trợ giúp của Tìm kiếm toàn văn bản.

Tìm kiếm các cảm biến được khách hàng ưa thích

Để biết liệu khách hàng có thích bất kỳ cảm biến ô tô nào khi họ đặt hàng hay không, chúng tôi phải chạy một truy vấn toàn văn như sau:

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

Sau đó, bạn sẽ thấy các kết quả sau:

Có một điều chắc chắn:khách hàng thích cảm biến ngoài hộp khi họ mua ô tô của họ. Đó là vì Tìm kiếm toàn văn bản cho cảm biến đã trả lại một số kết quả.

Tìm kiếm thông báo rằng chúng tôi có ít nhất hai loại cảm biến mà khách hàng thích:

  1. Cảm biến cảm ứng
  2. Cảm biến đỗ xe ngược chiều

Có thể nói rằng khách hàng thích ít nhất các loại cảm biến nêu trên.

Tìm kiếm tất cả các cảm biến đỗ xe được khách hàng ưa thích

Bây giờ, chúng tôi cần sử dụng Tìm kiếm toàn văn bản để tìm tất cả các loại Cảm biến đỗ xe mà khách hàng của chúng tôi thích.

Chúng ta có thể tìm ra điều này bằng cách sử dụng GẦN với các cụm từ tìm kiếm sau (như sau):

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

Kết quả như sau:

Do đó, dường như có bảy trường hợp như vậy mà khách hàng thích Cảm biến đỗ xe . Tuy nhiên, chúng ta cần đi sâu hơn để có thêm thông tin.

Cảm biến tìm kiếm ngoài cảm biến đỗ xe được khách hàng ưa thích

Bây giờ, chúng tôi muốn biết khía cạnh khác của câu chuyện, đó là tìm hiểu xem khách hàng thích loại cảm biến nào ngoài Cảm biến đỗ xe .

Sử dụng truy vấn toàn văn sau đây để tìm kiếm các cảm biến mà khách hàng thích ngoài Cảm biến đỗ xe :

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

Kết quả của truy vấn toàn văn ở trên như sau:

Ngoài Cảm biến đỗ xe, khách hàng thích Cảm biến cảm ứng .

So sánh cảm biến đỗ xe với cảm biến chạm và với các cảm biến khác

Điều quan trọng tiếp theo là xem liệu chúng ta có thể so sánh Cảm biến đỗ xe không với Cảm biến cảm ứng với các loại cảm biến khác mà khách hàng yêu thích khi họ đặt hàng mua ô tô.

Chúng tôi cũng cần biết tổng số đơn đặt hàng được đặt trong mùa giải này để làm cho việc so sánh thú vị hơn.

Tuy nhiên, điều này là không đủ. Chúng tôi cũng cần hiểu phần trăm độ giống nhau giữa các cảm biến.

Bạn có thể tìm ra điều này bằng cách sử dụng truy vấn toàn văn với sự trợ giúp của các biến và tổng hợp T-SQL như sau:

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

Kết quả có thể được nhìn thấy như sau:

Tóm tắt kết quả phân tích

Chúng tôi có thể kết luận rằng khách hàng ưa thích Cảm biến cảm ứng trên ô tô tính năng trên Cảm biến đỗ xe lùi tính năng. Tuy nhiên, chúng là cảm biến duy nhất mà khách hàng thích. Và tính năng họ thích nhất, đó là Cảm biến cảm ứng, chỉ chiếm 23% trong số tất cả các tính năng họ thích.

Phân tích 2:Tìm kiếm Toàn văn về Cảnh báo và Hỗ trợ Lái xe

Nếu bây giờ chúng ta giả định rằng chính trong mùa giải này, công ty sản xuất xe hơi đã giới thiệu một số tính năng hỗ trợ lái xe bao gồm một số cảnh báo.

Doanh nghiệp muốn biết những điều sau:

  1. Khách hàng thích những loại cảnh báo lái xe và tính năng hỗ trợ nào?
  2. Có bao nhiêu khách hàng thích sự kết hợp của các tính năng cảnh báo và hỗ trợ?
  3. Chúng tôi có thể thực hiện phân tích dựa trên độ tuổi về những khách hàng thích cả tính năng cảnh báo và hỗ trợ không?

Tìm kiếm các cảnh báo lái xe và các tính năng hỗ trợ được khách hàng ưa thích

Chúng tôi có thể tìm kiếm các cảnh báo lái xe và các tính năng hỗ trợ mà khách hàng thích bằng cách sử dụng truy vấn toàn văn, nhưng chúng tôi nên nhớ rằng từ “Phát hiện” cũng có thể được sử dụng thay thế cho “Cảnh báo” như sau:

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

Kết quả của truy vấn toàn văn ở trên như sau:

Vì vậy, bằng cách sử dụng truy vấn toàn văn, chúng tôi đã tìm ra câu trả lời cho câu hỏi kinh doanh đầu tiên về các loại tính năng và cảnh báo được khách hàng ưa thích.

Do đó, có thể kết luận rằng khách hàng thích các loại cảnh báo lái xe và các tính năng hỗ trợ sau:

  1. Cảnh báo Chuyển làn
  2. Hỗ trợ Hill
  3. Phát hiện va chạm
  4. Cảnh báo áp suất lốp

Tìm kiếm những khách hàng thích tất cả các tính năng hỗ trợ và cảnh báo khi lái xe

Một câu hỏi phức tạp hơn một chút là tìm xem có bao nhiêu khách hàng thích tất cả các tính năng và cảnh báo hỗ trợ lái xe và điều này có thể được trả lời bằng một truy vấn toàn văn như sau:

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

Kết quả như sau:

Vì vậy, có bốn đơn đặt hàng mà khách hàng thích cả tính năng hỗ trợ lái xe và cảnh báo.

Phân tích dựa trên độ tuổi của những khách hàng thích các tính năng hỗ trợ lái xe và cảnh báo

Để có thêm thông tin, chúng tôi sẽ cố gắng tìm hiểu các tính năng hỗ trợ lái xe và cảnh báo mà khách hàng thích dựa trên độ tuổi của họ.

Bạn cũng có thể thực hiện việc này bằng cách sử dụng kết hợp truy vấn toàn văn bản và các hàm Phân tích được cung cấp trong T-SQL như sau:

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

Kết quả như sau:

Vui lòng tham khảo bài viết Nghệ thuật tổng hợp dữ liệu trong SQL từ tổng hợp đơn giản đến trượt để tìm hiểu thêm về cách sử dụng các hàm phân tích trong T-SQL.

Tóm tắt kết quả phân tích

Theo phân tích ở trên bằng Tìm kiếm toàn văn bản, rõ ràng là các tính năng hỗ trợ lái xe và cảnh báo lái xe mà khách hàng ưa thích chủ yếu thuộc nhóm tuổi 35.

Vì vậy, những khách hàng ở độ tuổi 35 thích những tính năng này nhất, trong khi khách hàng trẻ tuổi nhất thích những tính năng này ở độ tuổi 18.

Khách hàng lớn tuổi nhất thích các tính năng này là 52 tuổi.

Có thể suy ra từ phân tích trên rằng hầu hết khách hàng trong độ tuổi từ 18 đến 52 đều thích các tính năng hỗ trợ lái xe và cảnh báo lái xe, trong đó những khách hàng thích các tính năng này hơn những người khác ở độ tuổi 35.

Xin chúc mừng, bạn đã học thành công cách thực hiện phân tích sản phẩm hơi phức tạp bằng cách sử dụng Tìm kiếm toàn văn bản.

Việc cần làm

Bây giờ bạn có thể thực hiện phân tích sản phẩm với Tìm kiếm toàn văn bản, tôi khuyến khích bạn thử những cách sau:

  1. Cố gắng có được thông tin tương quan bằng cách tìm những khách hàng thích cả cảm biến và tính năng hỗ trợ lái xe nhưng không thích cảnh báo khi họ mua (các) ô tô.
  2. Hãy ghi nhớ bài viết này, hãy tìm kiếm những khách hàng thích các cảnh báo nhưng không thích các tính năng hỗ trợ lái xe.
  3. Cố gắng thực hiện phân tích dựa trên độ tuổi của khách hàng cho các cảm biến tương tự như cảm biến mà chúng tôi đã thực hiện cho các tính năng hỗ trợ lái xe và cảnh báo.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xử lý lỗi trong giao dịch lồng nhau của máy chủ SQL

  2. Thêm giá trị mặc định của trường datetime trong SQL Server vào dấu thời gian

  3. Cách chủ động thu thập thông tin phân mảnh chỉ mục máy chủ SQL

  4. Tải tệp CSV lên máy chủ SQL

  5. Các cách khác nhau để so sánh lược đồ và dữ liệu bảng SQL Server