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

Triển khai Tìm kiếm Toàn văn trong SQL Server 2016 cho Người dùng Nâng cao

Bài viết này giới thiệu về các phương pháp sử dụng Tìm kiếm toàn văn bản nâng cao dành cho các chuyên gia dữ liệu. Nó cho phép trải nghiệm tìm kiếm tốt hơn trong phân tích cơ sở dữ liệu hàng ngày của họ.

Ngoài ra, người đọc sẽ có được ngoài kiến ​​thức cơ bản về Tìm kiếm toàn văn bản và cách triển khai nó. Bạn sẽ thấy tầm quan trọng của phương pháp tìm kiếm nâng cao bằng cách sử dụng Tìm kiếm toàn văn bản để nhận được kết quả nhanh chóng và đáng tin cậy.

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

Trước tiên, hãy xem xét các điều kiện tiên quyết vì bài viết tập trung vào các cách sử dụng nâng cao của Tìm kiếm toàn văn bản.

Bí quyết T-SQL

Bài viết giả định rằng để triển khai (các) hướng dẫn, người đọc đã quen với việc viết và chạy các tập lệnh T-SQL dựa trên cơ sở dữ liệu với hiểu biết cơ bản về SQL Server.

Khái niệm cơ bản về Tìm kiếm Toàn văn

Bài viết này cũng mong người đọc có những hiểu biết cơ bản về Tìm kiếm toàn văn bản.

Vui lòng tham khảo Triển khai Tìm kiếm Toàn văn trong SQL Server 2016 cho Người mới bắt đầu nếu bạn muốn làm quen với các khái niệm cơ bản và cách triển khai Tìm kiếm toàn văn bản qua (các) hướng dẫn.

Cài đặt Tìm kiếm Toàn văn

Giả sử rằng Tìm kiếm toàn văn bản đã được thêm vào phiên bản SQL của bạn.

Nếu bạn chưa thực hiện, hãy làm theo hướng dẫn trong phần Triển khai Tìm kiếm Toàn văn trong SQL Server 2016 cho Người mới bắt đầu để giúp bạn cài đặt Tìm kiếm toàn văn bản vào phiên bản SQL của bạn.

Bạn có thể kiểm tra trạng thái của Tìm kiếm toàn văn bản bằng cách thực thi tập lệnh sau:

 - Tìm kiếm toàn văn bản được cài đặt thì 1 hoặc 0SELECT fulltextserviceproperty ('IsFulltextInstalled') là [Tìm kiếm toàn văn bản] 

Cơ sở dữ liệu mẫu SQLDevBlogV7

Bây giờ, hãy tạo và điền một cơ sở dữ liệu mẫu có tên là SQLDevBlogV7 Ghi chú cột VARCHAR (MAX) gõ phím. Để làm điều đó, hãy chạy tập lệnh T-SQL sau trên cơ sở dữ liệu chính:

 - Tạo cơ sở dữ liệu mẫu (SQLDevBlogV7) TẠO CƠ SỞ DỮ LIỆU SQLDevBlogV7; GOUSE SQLDevBlogV7; - (1) Tạo bảng Bài viết trong cơ sở dữ liệu mẫu NULL, [Danh mục] VARCHAR (50) NULL, [Tác giả] VARCHAR (50) NULL, [Tiêu đề] VARCHAR (150) NULL, [Đã xuất bản] DATETIME2 (7) NULL, [Ghi chú] VARCHAR (MAX) NULL, CONSTRAINT [PK_Article ] PRIMARY KEY (ArticleId)); ĐI - Đặt lại dữ liệu dạng bảngTRUNCATE TABLE dbo.ArticleGO-- Thêm dữ liệu vào bảngSET IDENTITY_INSERT [dbo]. [Article] ONINSERT INTO [dbo]. [Article] ([ArticleId], [Category] , [Tác giả], [Tiêu đề], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (1, N'Development ', N'Atif', N'Introduction to T-SQL Programming ', N'2017-01-01 00:00:00 ', N'Bài viết về lập trình T-SQL bao gồm các câu lệnh được sử dụng phổ biến nhất bao gồm SELECT.') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title] , [Đã xuất bản], [Ghi chú]) VALUES (2, N'Testing ', N'Peter', N'Database Unit Testing Fundamentals ', N'2017-01-10 00:00:00', N'Đây là bài viết kiểm thử đơn vị cơ sở dữ liệu để làm quen với kiểm thử đơn vị với sự trợ giúp của các ví dụ và hướng dẫn. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title] , [Đã xuất bản], [Ghi chú]) VALUES (3, N'Data Analysis ', N'Haroon', N'Learn Basic Data Analysis with SQL Window Functions ', N'2019-06-12 00:00:00', N'Bài viết này nói về các hàm Window T-SQL (Transact-SQL) và cách sử dụng cơ bản của chúng trong các tác vụ phân tích dữ liệu hàng ngày. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Tác giả], [Tiêu đề], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (4, N'Development ', N'Peter', N'Common Table Expressions (CTE) ', N'2017-02-10 00:00 :00 ', N'Đây là bài viết giải thích cách sử dụng CTE trong T-SQL để viết các truy vấn phức tạp.') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [ Title], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (5, N'Testing ', N'Sadaf', N'Manual Testing so với Automated Testing ', N'2017-03-20 00:00:00', N 'Bài viết này dựa trên các lớp phủ so sánh giữa thử nghiệm thủ công và kiểm tra tự động. Bài viết này sử dụng tSQLt để đưa ra các ví dụ về kiểm thử tự động. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (6 , N'Testing ', N'Atif', N'Beyond Database Unit Testing ', N'2017-11-10 00:00:00', N'Có rất nhiều việc phải làm khi kiểm tra đơn vị cơ sở dữ liệu và bài viết này nói thêm về một số phương pháp cấp độ nâng cao để viết và chạy các bài kiểm tra đơn vị SQL bằng tSQLt. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published ], [Ghi chú]) VALUES (7, N'Testing ', N'Sadaf', N'Cross Database Unit Testing ', N'2017-12-20 00:00:00', N'Bài viết này đề cập đến một kịch bản phức tạp kiểm tra đơn vị cơ sở dữ liệu chéo bằng cách sử dụng các công cụ kiểm tra của bên thứ ba. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (8 , N'Development ', N'Haroon', N'Làm cách nào để sử dụng đúng hàm số T-SQL ', N'2018-01-10 00:00:00', N'Đây là về hàm IsNumeric xác định xem một biểu thức có thể b e được đánh giá là một số. Ở đây, biểu thức có thể bao gồm các ký hiệu và toán tử được Công cụ cơ sở dữ liệu SQL Server đánh giá là một giá trị dữ liệu duy nhất. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title ], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (9, N'Testing ', N'Sadaf', N'Scripting and Testing Database cho người mới bắt đầu ', N'2018-02-15 00:00:00', N ' Bài viết này dựa trên kịch bản và thử nghiệm cơ sở dữ liệu SQL sử dụng các công cụ và công nghệ hiện đại. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (10, N'Development ', N'Atif', N'Advanced Database Development Method ', N'2018-07-10 00:00:00', N'Bài này nói về các công cụ phát triển cơ sở dữ liệu hiện đại bao gồm SSDT, SSMS, v.v. ') CHÈN VÀO [dbo]. [Bài báo] ([Bài báo], [Danh mục], [Tác giả], [Tiêu đề], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (11, Không kiểm tra' , N ' est. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (12, N'Development', N'Peter ', N'Database Development using Modern Tools', N'2018-12-10 00:00:00 ', N'Trong trường hợp này, một kịch bản phát triển cơ sở dữ liệu được phân biệt bằng cách sử dụng SQL Server Data Tools và SQL Server Management Studio. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES (13, N'DLM', N'Atif ', N'Thiết kế, Phát triển và Triển khai Cơ sở dữ liệu ', N'2019-01-01 00:00:00', N'Các khái niệm xung quanh Azure DevOps và việc triển khai chúng là trọng tâm chính của bài viết này. ') CHÈN VÀO [dbo]. [Bài báo] ([ArticleId], [Category], [Tác giả], [Tiêu đề], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (14, N'DLM ', N'Peter', N'Cách áp dụng quản lý vòng đời cơ sở dữ liệu ', N'2019-02-10 00:00:00', N'Bài viết này nói về DLM. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title ], [Đã xuất bản], [Ghi chú]) GIÁ TRỊ (15, N'Testing ', N'Saqib', N'SQL Unit Testing Unit ', N'2019-03-10 00:00:00', N'This bài viết nói về cách viết các bài kiểm tra đơn vị cho một thủ tục. ') CHÈN VÀO [dbo]. [Article] ([ArticleId], [Category], [Author], [Title], [Published], [Notes]) VALUES ( 16, N'Reporting ', N'Haroon', N'SSRS Reports Development in Simple terms ', N'2019-07-10 22:26:42', N'Bài viết là dành riêng cho các nguyên tắc cơ bản của việc phát triển Dịch vụ Báo cáo Máy chủ SQL (SSRS) và nhắm đến người mới bắt đầu và các chuyên gia quan tâm đến phát triển cơ sở dữ liệu. ') SET IDENTITY_INSERT [dbo]. [Article] OFF 

Tạo Danh mục Toàn văn

Tạo Danh mục Toàn văn bằng cách sử dụng tập lệnh bên dưới hoặc sử dụng trình hướng dẫn thiết lập:

 - Tạo danh mục toàn văn bản 

Xác định Chỉ mục Toàn văn trên Ghi chú

Khi danh mục được tạo thành công, hãy xác định Chỉ mục Toàn văn dựa trên Ghi chú như sau (hoặc bằng cách sử dụng trình hướng dẫn thiết lập):

 - Xác định chỉ mục toàn văn bảnCREATE FULLTEXT INDEX TRÊN dbo. 

Kiểm tra danh mục toàn văn bản và danh mục toàn văn bản

Mở rộng các nút liên quan để xem Chỉ mục toàn văn bản và Danh mục toàn văn bản mà bạn vừa tạo:

Bây giờ bạn đã sẵn sàng chạy các truy vấn Toàn văn đối với bảng quan tâm - trong trường hợp của chúng tôi, đó là Bài báo .

Điều khoản đơn giản

Tìm kiếm một từ hoặc một cụm từ dễ dàng hơn tìm kiếm các dạng khác, vì vậy nó còn được gọi là một thuật ngữ đơn giản.

Tham khảo Triển khai Tìm kiếm Toàn văn trong SQL Server 2016 cho Người mới bắt đầu để triển khai dạng cơ bản của truy vấn Toàn văn để tìm kiếm một từ hoặc một cụm từ.

Bây giờ, hãy thảo luận về một số tìm kiếm nâng cao tiềm năng được thực hiện bằng Tìm kiếm toàn văn bản.

Tìm kiếm Toàn văn Nâng cao sử dụng Cụm từ tiền tố

Thuật ngữ tiền tố đề cập đến một từ có tiền tố bắt đầu bằng một số chữ cái - sau đó nó có thể là bất kỳ thứ gì phù hợp với mẫu đó. Bạn có thể coi nó như một phiên bản Tìm kiếm Toàn văn của LIKE với tiền tố *.

Một từ hoặc các từ trong một cụm từ cũng có thể có (các) thuật ngữ tiền tố.

Ví dụ

Ví dụ:tìm kiếm từ dữ liệu * có thể cung cấp cho chúng tôi bất kỳ thứ gì bắt đầu bằng dữ liệu trong cột đó, chẳng hạn như dữ liệu, cơ sở dữ liệu, cơ sở dữ liệu, v.v.

Tìm kiếm các bài viết liên quan đến nhà phát triển sử dụng Cụm từ tiền tố

Hãy tưởng tượng, bạn có nhiệm vụ tìm kiếm các bài báo liên quan đến phát triển để sắp xếp chúng trong một nhóm phát triển riêng biệt nhằm có trải nghiệm xem trang web tốt hơn.

Giải pháp là 'tìm kiếm cụm từ tiền tố' bằng cách sử dụng truy vấn Toàn văn như sau:

 - Hoàn thành Tiền tố Thuật ngữ Toàn văn Tìm kiếm các bài báo liên quan đến nhà phát triểnSELECT Tiêu đề, Ghi chú TỪ dbo. 

Kết quả cũng cho thấy bài báo về DevOps - nó không liên quan đến nhà phát triển, đó là lý do tại sao chúng tôi chạy một tập lệnh khác. Nó sẽ tìm thấy tất cả các bài viết liên quan đến nhà phát triển nhanh hơn bằng cách sử dụng truy vấn Toàn văn, ngoại trừ DevOps như sau:

 - Thực hiện Cụm tiền tố Toàn văn Tìm kiếm các bài viết liên quan đến nhà phát triển nhưng không phải Tiêu đề DevOpsSELECT, Ghi chú TỪ dbo. / pre> 

Kết quả như sau:

Cũng lưu ý, điều cần thiết là phải đặt từ tìm kiếm trong dấu ngoặc kép như được hiển thị trong các tập lệnh ở trên. Bằng cách làm này, chúng tôi triển khai tìm kiếm cụm từ tiền tố đúng cách.

Tìm kiếm Toàn văn Nâng cao sử dụng Biểu mẫu Đa hướng

Đôi khi bạn cần tìm kiếm các dạng từ không có nghĩa có nghĩa là các dạng có thể mà một từ có thể sử dụng.

Ví dụ

Một ví dụ đơn giản là từ “Triển khai” có thể có các dạng vô hướng sau:

  1. Triển khai
  2. Đã triển khai
  3. Triển khai
  4. Triển khai
  5. Đang triển khai

Các hình thức viết tìm kiếm không theo chiều

Hãy xem điều gì sẽ xảy ra nếu chúng ta chạy một truy vấn Toàn văn để tìm Ghi chú cho tất cả các dạng vô hướng của từ viết:

 - Tìm kiếm các dạng viết từ không theo chiều hướng sử dụng Tiêu đề tìm kiếm toàn văn bản, Ghi chú TỪ dbo. 

Cột Ghi chú với các hàng chứa cả ghi viết được hiển thị nơi viết là một dạng viết vô hướng .

Các hình thức Tìm kiếm Công nghệ không theo chiều hướng

Nếu bạn được giao nhiệm vụ tìm tất cả các bài báo có chứa các dạng khác nhau của từ công nghệ, thì hãy triển khai dạng tìm kiếm từ vô hướng bằng cách sử dụng tập lệnh T-SQL sau:

 - Tìm kiếm các dạng công nghệ từ vô hướng bằng cách sử dụng Tiêu đề toàn văn bản Tìm kiếmSELECT, Ghi chú TỪ dbo. 

Kết quả như sau:

Không Tìm kiếm Đơn vị Cụm từ Tiền tố

Bây giờ chúng ta hãy tạo một truy vấn Toàn văn phức tạp hơn. Nó sẽ tìm kiếm tất cả các bài báo để tìm một dạng vô hướng của từ kiểm tra nhưng không có thuật ngữ tiền tố đơn vị (không bao gồm kiểm thử đơn vị) vì chúng tôi đang tìm các bài viết về kiểm thử, không phải về kiểm thử đơn vị:

 - Tìm kiếm các dạng bài kiểm tra từ không theo hướng ngoại trừ thuật ngữ tiền tố đơn vị bằng cách sử dụng Full-Text SearchSELECT Title, Notes FROM dbo. * "') 

Do đó, chúng tôi sẽ chỉ xem các bản ghi thủ công , tự động, hoặc chỉ thử nghiệm các từ được đề cập ngoại trừ thử nghiệm đơn vị các bài báo.

Tìm kiếm Toàn văn Nâng cao bằng Tìm kiếm Vùng lân cận

Hãy sử dụng kinh nghiệm thực tế của chúng tôi về việc sử dụng tìm kiếm vùng lân cận bằng cách chạy truy vấn Toàn văn.

Tìm kiếm / Cụm từ vùng lân cận

Hình thức Tìm kiếm Toàn văn này cho phép bạn tìm kiếm các từ hoặc cụm từ gần nhau. Sẽ rất hữu ích khi tìm bản ghi khi một số từ hoặc cụm từ có vị trí rất chặt chẽ.

Ví dụ

Một ví dụ điển hình về tìm kiếm vùng lân cận là tìm kiếm các bản ghi có từ bóng đá gần từ mặt đất chỉ để nhận thông tin về sân bóng đá.

Tìm kiếm 'thử nghiệm gần nâng cao' bằng Cụm từ lân cận

Nếu bạn muốn tìm kiếm tất cả các bài báo có đề cập đến kiểm tra nâng cao mà không theo bất kỳ thứ tự cụ thể nào, thì tùy chọn tốt nhất của bạn là sử dụng tìm kiếm vùng lân cận với điều kiện là Tìm kiếm toàn văn bản được thiết lập dựa trên cột mong muốn.

Viết đoạn mã sau để tìm kiếm từ nâng cao gần từ kiểm tra theo thứ tự bất kỳ trong cột Ghi chú:

 - Tìm kiếm từ nâng cao gần kiểm tra từ bằng cách sử dụng tìm kiếm lân cận (Tìm kiếm toàn văn bản) CHỌN LƯU Ý TỪ dbo. 

Kết quả như sau:

Kết quả đã cho chúng tôi thấy các ghi chú nơi thử nghiệm được đề cập đến bằng các phương pháp cấp độ nâng cao và đây là những gì chúng tôi đang tìm kiếm. Chúng tôi cũng có thể chỉ định khoảng cách giữa hai từ.

Tìm kiếm cách nhau không quá 2 từ

Cuối cùng, hãy chạy truy vấn Toàn văn bản sử dụng thuật ngữ lân cận để tìm ra mọi tình huống cơ sở dữ liệu có từ cơ sở dữ liệu gần từ kịch bản nhưng không cách nhau quá 2 từ.

 - Tìm kiếm cơ sở dữ liệu từ gần kịch bản từ cách nhau không quá 2 từ bằng cách sử dụng tìm kiếm lân cận (Tìm kiếm toàn văn bản) CHỌN LƯU Ý TỪ dbo. ) ') 

Kết quả như sau:

Do đó, bài viết mà kịch bản phát triển cơ sở dữ liệu được đề cập đã được hiển thị thành công.

Với điều này, bạn đã học thành công cách viết các truy vấn Toàn văn nâng cao dựa trên bất kỳ cột nào. Điều này giúp bạn đáp ứng các yêu cầu tìm kiếm phức tạp để sẵn sàng chạy Tìm kiếm toàn văn bản trong các tình huống cuộc sống chuyên nghiệp của bạn bất cứ khi nào có thể.

Việc cần làm

Bây giờ bạn có thể viết các truy vấn Toàn văn nâng cao, bạn nên thử những điều sau để cải thiện kỹ năng của mình:

  1. Cố gắng tìm kiếm tất cả các bài viết có tiền tố từ auto được sử dụng.
  2. Hãy ghi nhớ bài viết này, hãy cố gắng viết tập lệnh để thực hiện tìm kiếm vùng lân cận để tìm tất cả các hàng có từ hiện đại gần từ công cụ .
  3. Cố gắng tìm tất cả các dạng vô hướng của từ đã viết .

  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 thay thế các giá trị (null) bằng đầu ra 0 trong PIVOT

  2. Cách thay đổi màu và phông chữ trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 12

  3. Giao diện mạng SQL Server:Chuỗi kết nối không hợp lệ [87]

  4. Các trường hợp sử dụng cho câu lệnh MERGE của máy chủ SQL:Đồng bộ hóa bảng lịch sử và trực tuyến

  5. Cách IIF () hoạt động trong SQL Server