Full-Text Search: Tìm kiếm đầy đủ nghĩa trong SQL Server

Tìm kiếm là một phần không thể thiếu trong mọi ứng dụng và trang web. Đây là lý do tại sao tính năng tìm kiếm được coi là rất quan trọng.

Trong thực tế, việc sử dụng từ khóa “LIKE” để tìm kiếm thường không mang lại hiệu quả như mong đợi. Chẳng hạn, khi bạn tìm kiếm cụm từ “giày bóng dá” trên một trang web bán hàng, bạn mong muốn nhận được kết quả như “giày bóng đá”, “bóng đá”, “đá bóng”, “giày” và “bóng”. Tuy nhiên, vị trí của các từ trong kết quả có thể không giống như cụm từ bạn đã nhập, có thể có sự đảo ngược, đồng nghĩa hoặc trái nghĩa.

Mặc dù bạn có thể thực hiện tìm kiếm này bằng cách viết mã, nhưng việc triển khai sẽ phức tạp và khó khăn. Đó là lý do tại sao Full-Text Search ra đời, giúp tăng tốc độ tìm kiếm so với phương pháp thông thường.

Hiện nay, các hệ quản trị cơ sở dữ liệu như SQL Server và MySQL đều tích hợp sẵn tính năng Full-Text Search để bạn sử dụng.

Hướng dẫn kiểm tra tính năng Full-Text Search

Đầu tiên, hãy kiểm tra xem tính năng Full-Text Search đã được cài đặt hay chưa. Bạn có thể kiểm tra bằng câu lệnh sau trong SQL Server Management:

SELECT SERVERPROPERTY('IsFullTextInstalled')

Nếu câu lệnh trả về kết quả 0, điều đó có nghĩa là Full-Text chưa được cài đặt. Khi kết quả là 1, điều đó có nghĩa là tính năng đã được cài đặt.

Xem thêm  MARKET TREND LÀ GÌ? CÁCH XÁC ĐỊNH XU HƯỚNG HIỆU QUẢ THEO CẤU TRÚC THỊ TRƯỜNG - Công ty TNHH G-Saram Vietnam

Sử dụng Full-Text Search trên SQL Server

Để thử nghiệm Full-Text Search, bạn cần có một cơ sở dữ liệu. Tôi đã chuẩn bị sẵn một cơ sở dữ liệu với hơn 1000 mục sản phẩm.

Bước 1: Bắt đầu bằng việc tạo catalog cho cơ sở dữ liệu.

Tiếp theo, bạn chọn “Accent-insensitive” để tạo catalog.

Kết quả sau khi tạo xong catalog sẽ như sau:

Bước 2: Tạo full-text index cho cột Name của bảng sản phẩm. Bạn có thể tạo full-text index bằng cách sử dụng câu lệnh truy vấn, hoặc có thể sử dụng Full-Text Wizard.

Sau khi tạo full-text index, bạn có thể kiểm tra hoạt động của Full-Text Search bằng cách thực thi một số câu truy vấn.

Ví dụ, bạn muốn tìm tất cả các sản phẩm có chữ “Bình” trong tên. Bạn có thể thực hiện truy vấn như sau:

SELECT * FROM dbo.Product WHERE [Name] LIKE N'%binh%'

Hoặc sử dụng Full-Text Search như sau:

SELECT * FROM dbo.Product WHERE CONTAINS([Name],'binh')

Kết quả từ hai câu truy vấn trên sẽ giống nhau.

Ngoài ra, Full-Text Search còn hỗ trợ các toán tử FREETEXT, FREETEXTTABLE,… Mỗi toán tử có cách sử dụng riêng. Bạn có thể tìm hiểu thêm về các toán tử này trong tài liệu hướng dẫn.

Đó là một số thông tin cơ bản về Full-Text Search trong SQL Server. Nếu bạn muốn tìm hiểu thêm, hãy truy cập Wiki Fin để đọc thêm các bài viết liên quan.