PHƯƠNG PHÁP TÌM KIẾM NHANH THEO CHỈ MỤC FULL TEXT SEARCH

6 17 0
Tài liệu đã được kiểm tra trùng lặp
PHƯƠNG PHÁP TÌM KIẾM NHANH THEO CHỈ MỤC FULL TEXT SEARCH

Đang tải... (xem toàn văn)

Thông tin tài liệu

BÁO CÁO TUẦN Sinh Viên : Nguyễn Đình Huấn Lớp : K53CC PHƯƠNG PHÁP TÌM KIẾM NHANH THEO CHỈ MỤC FULL TEXT SEARCH I.Tìm Kiếm Nhanh Là Gì 1.Tìm Kiếm Nhanh Là Gì -Tìm kiếm nhanh : Là việc người dùng sử dụng chức tìm kiếm nhanh để tìm kiếm thơng tin trang web theo từ khóa máy tìm kiếm website dựa từ khóa nhập vào người dùng tìm kiếm tất thông tin văn liên quan đến từ khóa CSDL cách nhanh để cung cấp cho người dùng 2.Làm Sao Để Tìm Kiếm Nhanh - Đề tìm kiếm thơng tin xác trở nên quan trọng Với khối lượng liệu lớn có tổ chức phức tạp, vấn đề đặt làm để tìm nhanh thơng tin cần Người dùng khơng muốn tìm kiếm từ mà lại có triệu câu trả lời, họ cần xác loại bỏ từ gây nhiễu Có số phương pháp giúp tìm kiếm nhanh CSDL -Một phương pháp tìm kiếm nhanh phương pháp tìm kiếm theo mục (index) gọi “Tìm Kiếm Tồn Văn “ II Tìm Kiếm Nhanh Full-Text-Search 1.Sơ Lược tìm kiếm full-text - MySQL hỗ trợ tìm kiếm văn lệnh LIKE biểu thức tìm kiếm Tuy nhiên cột liệu dạng TEXT có dung lượng lớn số dịng nhiều phương pháp nêu bộc lộ giới hạn sau:  Hiệu : MySQL phải quét qua tồn bảng để tìm dịng theo điều kiện lọc lệnh LIKE hay tìm mẫu văn phù hợp với mẫu biểu thức tìm kiếm.Vì cần nhiều thời gian dể tìm kiếm CSDL lớn  Tính linh hoạt : Ví dụ u cầu tìm kiếm tất sản phẩm có chứa từ ‘car’ phần mơ tả lại khơng chứa từ ‘classic’ lệnh LIKE biểu thức tìm kiếm bộc lộ hạn chế  Xếp hạng tìm kiếm : khơng dịng tập kết tìm kiếm phù hợp với yêu cầu tìm kiếm  Độ Nhiễu Cao : Giả sử, bạn có câu truy vấn với mệnh đề LIKE sau: Title LIKE ‘%one%’ Thì trả kể sau: one, zone, money, phone nói chung khơng xác dải kết trả rộng chứa nhiều kết nhiễu khơng mong muốn  Tìm kiếm tiếng việt có dấu khơng dấu : Giả sử ta lưu tiếng Việt có dấu database, người dùng nhập tiếng Việt không dấu mệnh đề LIKE chắn khơng tìm liệu ta cần Có số giải pháp ví dụ lưu field, có dấu không dấu, cách xem không tối ưu không hỗ trợ search gần -Từ giới hạn trên, MySQL cung cấp tính “tìm kiếm toàn văn” – full text search Xét mặt kĩ thuật MySQL đánh mục từ cột tiến hành tìm kiếm fulltext Như việc tìm kiếm mục hiệu MySQL sử dụng thuật toán phức tạp để xác định xem dịng phù hợp với u cầu tìm kiếm Những đặc tính quan trọng tìm kiếm full-text MySQL:  Giao diện túy SQL: sử dụng lệnh LIKE để tìm kiếm full-text  Chỉ mục hồn tồn mang tính động: MySQL tự động lập mục cột văn có diễn thay đổi liệu cột  Điều tiết dung lượng mục: không chiếm nhiều dung lượng cho việc lưu trữ mục  Tìm kiếm nhanh chóng câu truy vấn phức tạp  Tự loại bỏ từ có chữ (có thể config)  Các từ có gạch ngang nằm xem từ  Các hàng trả lại theo thứ tự thích hợp, từ cao xuống thấp  Lưu ý: MySQL hỗ trợ chức tìm kiếm full-text với bảng liệu kiểu MyISAM, tìm kiếm full-text bảng InnoDB (version >=5.6 beta) Để tiến hành tìm kiếm full-text cột liệu, cần khai báo theo cú pháp sau: 2.Phương Pháp Thực Hiện Cách 1: CREATE TABLE table_name( ‘column1’ data_type, … PRIMARY_KEY(‘key_column’), FULLTEXT (‘column_name1’,’column_name2’, ) ) ENGINE=MyISAM Ví dụ: CREATE TABLE `products` ( `productCode` varchar(15) NOT NULL, `productName` varchar(70) NOT NULL, `productLine` varchar(50) NOT NULL, `productScale` varchar(10) NOT NULL, `productVendor` varchar(50) NOT NULL, `productDescription` text NOT NULL, `quantityInStock` smallint(6) NOT NULL, `buyPrice` double NOT NULL, `MSRP` double NOT NULL, PRIMARY KEY (`productCode`), FULLTEXT (`productDescription`, `productLine`, `productVendor`) ) ENGINE=MyISAM Cách 2: ALTER TABLE table_name ADD FULLTEXT(column_name1, column_name2,…) Ví dụ: ALTER TABLE products ADD FULLTEXT(productDescription, Productline, productVendor) -Ví dụ trường “productCode” khóa Chúng ta dùng mệnh đề FULLTEXT để đánh mục cho trường productDescription , productline va productVendor -Chú ý dòng FULLTEXT (`productDescription`,`productLine`,`productVendor`) Các mục tạo trường có kiểu VARCHAR TEXT Khi trường có mục CSDL sẵn sàng cho việc khai thác tính TKTV để tìm ghi phù hợp yêu cầu tìm kiếm dựa giá trị có ba trường Xóa cột hỗ trợ tìm kiếm full-text ALTER TABLE DROP INDEX ; Chúng ta dùng kết hợp lệnh ALTER TABLE DROP INDEX ví dụ sau: ALTER TABLE products DROP INDEX productDescription; 3.Cách Tìm Kiếm a.Tìm Kiếm Theo Ngơn Ngữ Tự Nhiên - MySQL tìm kiếm dòng tài liệu tương ứng với câu truy vấn theo ngơn ngữ tự nhiên - MySQL tính tốn độ tương thích dựa số từ dịng, số từ độc dịng đó, tổng số từ, số dịng (hay tài liệu) có chứa từ tìm kiếm - Để thực tìm kiếm theo ngơn ngữ tự nhiên, sử dụng hai hàm MATCH AGAINST  Hàm MATCH tìm kiếm cột  Hàm AGAINST biểu thức tìm kiếm (hay cụm từ tìm kiếm theo ngơn ngữ tự nhiên mà người dùng nhập vào) Ví dụ 1: Để tìm kiếm dịng sản phẩm có chứa từ ‘Classic’ hay ‘Vintage’ ta lập câu truy vấn sau SELECT productName, productline FROM products WHERE MATCH(productline) AGAINST('Classic,Vintage') -Chúng ta khai báo rõ ràng câu truy vấn chế độ tìm kiếm tìm theo ngơn ngữ tự nhiên (theo mặc định MySQL ngầm hiểu tìm theo ngơn ngữ tự nhiên, nhiên để rõ ràng ta khai báo sau) SELECT productName, productline FROM products WHERE MATCH(productline) AGAINST('Classic,Vintage' IN NATURAL LANGUAGE MODE) Theo mặc định, MySQL xếp kết phù hợp lên trước tập kết tìm kiếm b.Tìm Kiếm Văn Bản Chế Độ BOOLEAN Ngồi chế độ tìm kiếm văn bàn theo ngơn ngữ tự nhiên, MySQL cịn cung cấp chế độ tìm kiếm văn theo chế độ Boolean (logic) – nghĩa tìm kiếm theo từ khóa khơng tìm theo khái niệm chế độ tìm kiếm theo ngơn ngữ tự nhiên Cách tìm kiếm sau: Ví dụ 2: Để tìm tất sản phẩm có tên Truck khơng chứa từ ‘Pickup’ câu truy vấn có dạng sau: SELECT productName, productline FROM products WHERE MATCH(productName) AGAINST('Truck -Pickup' IN BOOLEAN MODE ) Dưới bảng liệt kê toán tử ý nghĩa chúng phép tìm kiếm văn theo chế độ Boolean + - Gộp, từ phải có kết tìm kiếm Loại trừ, từ khơng thể xuất kết tìm kiếm > < Gộp giá trị xếp hạng tăng dần Gộp giá trị xếp hạng giảm dần Nhóm từ nằm dấu () (là gộp, loại trừ, xếp hạng, nhóm thống nhất) Phủ định giá trị xếp hạng Dấu thay cuối từ Xác định cụm từ () ~ * "" c Tìm kiếm theo tính mở rộng MYSQL Trong nhiều trường hợp, người sử dụng muốn tìm kiếm thơng tin dựa theo tri thức mà họ có Do đó, họ sử dụng tri thức để xây dựng từ khóa tìm kiếm Và thường từ khóa tìm kiếm q ngắn Để giải vấn đề này, chế tìm kiếm full-text MySQL cung cấp khái niệm gọi mở rộng truy vấn Về mặt kĩ thuật, chế gồm bước sau:  Trước tiên, động tìm kiếm full-text MySQL tìm kiếm tất dịng phù hợp yêu cầu tìm kiếm câu truy vấn  Tiếp theo, kiểm tra tất dịng tập kết tìm từ liên quan  Cuối cùng, động tìm kiếm full-text MySQL tiến hành tìm kiếm lại lần lại dựa từ liên quan Ví Dụ : Ví dụ 1: Xét việc tìm kiếm tên sản phẩm có chứa ‘1932’ - truy vấn thông thường : SELECT productName FROM products WHERE MATCH(productName) AGAINST('1992') Kết trả có dịng Với tính mở rộng truy vấn, ta có kết sau - truy vấn mở rộng SELECT productName FROM products WHERE MATCH(productName) AGAINST('1992' WITH QUERY EXPANSION) - Kết gồm có dịng dịng đầu hoàn toàn phù hợp với yêu cầu truy vấn Những dịng sau sản phẩm có tên liên quan đến tên sản phẩm trên, khơng thiết phải chứa từ khóa ‘1932’ ... không hỗ trợ search gần -Từ giới hạn trên, MySQL cung cấp tính ? ?tìm kiếm tồn văn” – full text search Xét mặt kĩ thuật MySQL đánh mục từ cột tiến hành tìm kiếm fulltext Như việc tìm kiếm mục hiệu... với u cầu tìm kiếm Những đặc tính quan trọng tìm kiếm full- text MySQL:  Giao diện túy SQL: sử dụng lệnh LIKE để tìm kiếm full- text  Chỉ mục hồn tồn mang tính động: MySQL tự động lập mục cột văn... lại theo thứ tự thích hợp, từ cao xuống thấp  Lưu ý: MySQL hỗ trợ chức tìm kiếm full- text với bảng liệu kiểu MyISAM, tìm kiếm full- text bảng InnoDB (version >=5.6 beta) Để tiến hành tìm kiếm full- text

Ngày đăng: 24/11/2022, 20:12

Tài liệu cùng người dùng

Tài liệu liên quan