Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
Nội dung
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.
Đầ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
Để 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.
Tiếp theo các bạn vui lòng chọn Accent-insensitive.
Kết quả sau khi tạo xong catalog
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
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
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.
Chọn Full-Text Catalog đã tạo ở Bước 1
Nhấn Finish ở bước cuối cùng
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)
Ở 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)
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
Ngoài toàn tử CONTAINS , còn hỗ trợ toán tự FREETEXT, FREETEXTTABLE,… cũng rất hay. Các bạn có thể tham khảo thêm tài liệu riêng về query tại đây
Tham khảo các dịch vụ VPS – CLoud Server tại P.A
https://www.pavietnam.vn/vn/vps-server.html
Xem thêm nhiều kiến thức về Cơ sử dữ liêu tại đây
Truy cập vào đây để nhận được thông tin ưu đãi -khuyến mãi thường xuyên
https://www.pavietnam.vn/vn/tin-tuc-chuong-trinh-khuyen-mai-ten-mien-hosting.html