Thứ Sáu, 15 tháng 3, 2013

SQL Server Full Text Search - Cấu hình và thực thi cơ bản

http://hmweb.com.vn/lap-trinh-web-voi-php/sql-server-full-text-search-cau-hinh-va-thuc-thi-co-ban.htm

SQL Server Full Text Search - Cấu hình và thực thi cơ bản

Full-text search là một cơ chế mà sql server cho phép bạn tìm kiếm một từ hay một cụm từ một cách hiệu quả và nhanh chóng. Trong bài đầu về chủ đề này tôi giới thiệu, hướng dẫn cấu hình và thực thi cơ bản nhất để bạn hiểu về SQL Server Full Text Search

Với mỗi website thì chức năng tìm kiếm (search) gần như là bắt buộc, vậy để chức năng tìm kiếm được hiệu quả và đưa ra những thông tin tốt nhất cho người dùng tìm kiếm giải pháp tốt nhất mà ta nên dùng đó là dùng SQL FullText Search.

Chúng ta thường hay dùng toán tử like hay hàm charindex để tìm kiếm một từ hay cụm từ, ví dụ: Title like N'%Chia sẻ là niềm vui%' (Hoặc CharIndex(N'Chia sẻ là niềm vui',Title)>0), nghĩa là chúng ta đang muốn tìm danh sách tiêu đề bài viết nào miễn là tiêu đề đó có chứa từ khóa Chia sẻ là niềm vui. Việc tìm kiếm như vậy chỉ giúp cho chúng ta tìm hiệu quả được 1 từ hoặc nhiều từ nhưng phải đúng vị trí thứ tự.

Trên thực tế việc tìm kiếm của chúng ta phức tạp hơn rất nhiều, cái mà ta cần có thể là những từ đồng nghĩa, trái nghĩa hoặc nó không cần chính xác vị trí mà ở cạnh nhau hoặc đảo vị trí cũng cần phải xuất hiện trong kết quả tìm kiếm, ví dụ các bạn muốn tìm những bài viết có tiêu đề có từ Lập trình asp.net, như vậy kết quả tìm kiếm sẽ cần gồm có Lập trình asp.net, Lập trình, asp.net, lập, trình, ..., không cần biết vị trí từ nào đứng trước và chúng cũng chẳng cần phải đứng sát nhau. Yêu cầu trên sẽ được full-text search giải quyết cho bạn. Bằng việc một vài thao tác cấu hình và cài đặt bằng tool hoặc dòng lệnh T-SQL và sau đó sử dụng hàm được hỗ trợ riêng cho full-text search (Contain và FreeText) là bạn có thể thực hiện đầy đủ các nhu cầu tìm kiếm ngay cả việc tìm những từ đồng nghĩa và trái nghĩa với từ khoá bạn cho vào. Tuyệt vời hơn nữa là full-text cho phép bạn loại bỏ những từ không cần thiết trong câu từ khoá bạn cần tìm (được hiểu là những từ noise), ví dụ bạn gõ câu từ khoá là full-text search là gì, thì full-text search sẽ tự động loại bỏ 2 từ "là" và "gì" để chỉ tìm cho bạn danh sách nào có chứa từ full-text search là từ khoá mà thực sự mình muốn tìm.

Trước hết bạn cần kiểm tra SQL Full Text Search đã được bật chưa. Bạn kiểm tra như sau (Ở đây tôi minh họa cho SQL Server 2005):

1) Nhấn phải chuột vào My Computer > Manage > Services and Applications > SQL Server Configuration Manager > SQL Server 2005 Services
2) Nếu SQL Server Full Text Search chưa được Start bạn nhấn phải chuột chọn Start (State phải là Running) sau đó khởi động lại MSSQL server (nếu bạn đang mở)

Bạn hãy chắc chắn rằng tài khoản SQL của bạn có quyền ghi dữ liệu lên ổ cứng. Bước tiếp theo bạn cần enable FullText Search cho cơ sở dữ liệu của bạn. Bạn thực hiện lệnh sau:

EXEC sp_fulltext_database 'enable'

Tiếp theo bạn Nhấn phải chuột vào bảng dữ liệu cần truy vấn (TB_News), Chọn Full-Text index > Define Full-Text Index

Nhấn Next (tại bước này nếu bảng của bạn chưa có trường nào là khóa chính hoặc là Index thì bạn sẽ không thực hiện tiếp được (lỗi: A unique column must be defined on this table/view) đó đó hãy chắc chắn bạn đã tạo Khóa hoặc Index cho bảng). Ở đây nếu bảng có nhiều hơn 1 index bạn hãy chọn index tại Unique Index, mặc định sẽ là PRIMARY KEY index. Nhấn Next, tại đây bạn chọn các trường cần search

Nhấn next, Next, Đặt tên cho Full-Text của bạn, Location Chọn nơi lưu tệp Full-Text  của bạn, nhấn next ... Finish chờ giây lát quá trình sẽ hoàn thành. Đến đây quá trình thiết lập cơ bản đã hoàn thành .

Không có nhận xét nào:

Đăng nhận xét

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...