Full text search sql server hướng dẫn

Trong mỗi ứng dụng Application hay website thì chức năng tìm kiếm thì không bao giờ thiếu. Vậy nên chức năng tìm kiếm là rất quan trọng.

Như các bạn đã biết, thường tìm kiếm chúng ta thường sử dụng từ khóa “LIKE” để trả về cho chúng ta kết quả gần đúng. Tuy nhiên, trong thực tế thì với việc tìm kiếm sử dụng từ khóa “LIKE” đôi khi cho chúng ta kết quả không được mong muốn. Mình xin ví dụ:

Ví dụ:

Ở một trang web bán hàng, khi chúng ta đánh cụm từ “giày bóng dá”, người dùng mong muốn nhận được kết quả có từ: “giày bóng đá”, “bóng đá”, “đá bóng”,”giày”,”bóng”… Vị trí của các từ xuất hiện trong kết quả có thể không giống với cụm từ đưa vào, mà có sự đảo ngược lại, đồng nghĩa, trái nghĩa.

Các bạn có thể tìm kiếm này bằng cách code, tuy nhiên chúng ta sẽ thực hiện rất khó khăn và phức tạp. Ngoài ra, Full Text Search sẽ cho tốc độ tìm kiếm nhanh hơn cách thông thường.

Hiện tại các hệ quản trị cơ sở dữ liệu như SQL SERVER hay MY SQL đều có đã tích hợp sẵn chức năng FULL-TEXT Search cho chúng ta sử dụng.

  • Tìm từ đồng nghĩa (VD đưa vào là: “man”, sẽ tìm các từ có “man” và “men”).
  • Tìm từ gần đúng, so từng từ trong cụm từ, đảo vị trí.
  • Hỗ trợ tìm kiếm có đấu (VD đưa vào: “Giay bong da”, vẫn sẽ tìm ra kết quả “giày bóng đá”).
  • Loại bỏ các từ khóa nhiễu (noise).

Hướng dẫn kiểm tra Full-Text Search đã được cài đặt hay chưa

Đầu tiên là kiểm tra cài đặt Full Text Search, mở SQL Studio Management. Các bạn kiểm tra bằng câu truy vấn sau:

SELECT SERVERPROPERTY('IsFullTextInstalled')

nếu câu lệnh cho kết quả 0 nghĩa là Full-text chưa được cài đặt. kết quả bằng 1 nghĩa là đã được cài đặt

Full text search sql server hướng dẫn

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

Để thử nghiệm Full-text Search, chúng ta cần có database. Mình đã chuẩn bị sẵn cho các bạn 1 database sản phẩm với hơn 1000 entries.

Bước 1 : Chúng ta bắt đầu cài đặt catalog cho database.

Full text search sql server hướng dẫn

Tiếp theo các bạn vui lòng chọn Accent-insensitive.

Full text search sql server hướng dẫn

Kết quả sau khi tạo xong catalog

Full text search sql server hướng dẫn

Bước 2 : Tạo full-text index cho cột Name của sản phẩm. Chúng ta có thể define Full-text index bằng câu lệnh query, trong bài này mình sẽ hướng dẫn cách dùng Full-text Wizard

Click phải vào bảng cần tạo full-text index -> Chọn Full-Text index -> define Full-text index

Full text search sql server hướng dẫn

Click Next ở các bước tiếp theo cho tới khi xuất hiện cửa sổ Select Table Columns

Tiếp theo check vào cột cần tạo index và chọn ngôn ngữ tương ứng

Full text search sql server hướng dẫn

Tiếp theo chọn Automatically. Mỗi khi có thay đổi (Insert, update, delete), full-text index sẽ tự động cập nhật. Việc này có thể làm quá trình insert/update/delete chậm đi.

Full text search sql server hướng dẫn

Chọn Full-Text Catalog đã tạo ở Bước 1

Full text search sql server hướng dẫn

Nhấn Finish ở bước cuối cùng

Full text search sql server hướng dẫn

Full text search sql server hướng dẫn

Vậy là các bước thực hiện tạo catalog trên database đã hoàn tất. Bây giờ, chúng ta bắt đầu test Full text search nó khác với “LIKE” như thế nào?

Ví dụ, chúng ta muốn tìm tất cả các sản phẩm có chữ “Bình” trong tên.

Ta cùng test thử với 3 câu query như sau

SELECT * FROM dbo.Product WHERE [Name] LIKE N'%binh%' SELECT * FROM dbo.Product WHERE [Name] LIKE N'%bình%' SELECT * FROM dbo.Product WHERE CONTAINS([Name],'binh')

Ở câu query đầu tiên sẽ không cho ra kết quả gì hết. vì lý do tìm kiến like với từ khóa binh (không dấu)

Full text search sql server hướng dẫn

Ở câu query thứ 2 và 3 cho chúng ta kết quả như nhau.

Như ta thấy, với câu query cuối cùng (Có CONTAINS, chúng ta chỉ cần chữ ‘binh‘ là đã có kết quả đúng)

Full text search sql server hướng dẫn

Ta tiếp tục thử với 2 câu query sau

SELECT * FROM dbo.Product WHERE [Name] LIKE N'%chu%' SELECT * FROM dbo.Product WHERE CONTAINS([Name],'chu')

Ta sẽ thấy, với kí tự “chu”, toán tử LIKE cho kết quả có “chuột”, trong khi Full-text tìm các kết quả có từ “chữ”, “chủ”…, đúng với yêu cầu hơn

Full text search sql server hướng dẫn

THAM KHẢO THÊM:

https://hoinongdan.vn/thuoc-bao-ve-thuc-vat/dung-suncolex-68wp-500gram-khi-cay-trong-bi-nam-benh-gay-hai/

https://hoinongdan.vn/product/elcarin-0-5sl-100ml-phong-tri-virus-vi-khuan-nam-benh-gay-hai-cay-trong/

https://hoinongdan.vn/uncategorized/elcarin-0-5sl-100ml-phong-tri-virus-vi-khuan-nam-benh-gay-hai-cay-trong/

CHÚC CÁC BẠN THÀNH CÔNG

——————————————————————————-

CÔNG TY TNHH VTNN VIỆT NAM NÔNG NGHIỆP SẠCH

Địa chỉ: Đường Nguyễn Trãi, Khu Dân Cư 4, Khu Phố Hiệp Tâm 2, Thị Trấn Định Quán, Huyện Định Quán, tỉnh Đồng Nai.