VIEW
STORED PROCEDURE
INDEX
FULL TEXT SEARCH
TRIGGER
TIPS
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Full Text Search là gì? Tại sao nên sử dụng trong MySQL?

Trong bài viết này mình sẽ giúp các bạn hiểu Full Text Search trong MySQL là gì và những lợi ích khi sử dụng Full Text Search trong dự án.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nếu bạn đã sử dụng các công cụ tìm kiếm như Google hoặc Bing tức là bạn đang sử dụng ứng dụng sư dụng kỹ thuật Full Text Searh. Các công cụ tìm kiếm thu thập nội dung từ các trang web vào cơ sở dữ liệu và cho phép bạn tìm kiếm dựa trên các từ khóa.

Đương nhiên không hẳn là Google sử dụng kỹ thuật này, bởi họ có cả một hệ thống dữ liệu phân tán và áp dụng nhiều ngôn ngữ vào dự án. Vậy full text search là gì thì hãy cùng mình tìm hiểu ngay nhé!

1. Full Text Search là gì?

full text search png

Full Text Search là một kỹ thuật tìm kiếm các tài liệu không phù hợp với tiêu chí tìm kiếm. Tài liệu ở đây có thể là một mô tả sản phẩm, một bài viết được lưu trữ trong Database của MySQL.

Bài viết này được đăng tại [free tuts .net]

Không phù hợp với tiêu chí tìm kiếm là như thế nào? Ví dụ bạn có 1000 bài viết và muốn tìm kiếm từ khóa "học lập trình miễn phí", nhưng trong đoạn văn đó không có từ khóa này, vì vậy cần phải tách nhỏ từ khóa đó ra để tìm kiếm đến bài có chứa các từ phù hợp nhất.

Thực tế bạn có thể sử dụng từ khóa Like trong MySQL đẻ tìm kiếm bằng cú pháp "%word1%word2%word3word1..." nhưng về tốc độ thì nó tốn khá nhiều tài nguyên, điều này xảy ra tình trạng overload nếu dữ liệu quá dài và quá nhiều.

2. Vậy tại sao nên sử dụng Full Text Search trong MySQL?

Để trả lời câu hỏi này thì a hay cùng phân tích đến một vài đặc điểm.

Hiệu suất

MySQL phải quét toàn bộ bảng để tìm văn bản chính xác dựa trên một mẫu trong câu lệnh LIKE, nhưng full text search là một thể loại index nên sẽ cho tốc độ tốt hơn nhiều.

Sự linh hoạt

Tìm kiếm nội dung trọng từ khóa rất linh hoạt, không cần phải xuất hiện nguyên từ khóa mà nó sẽ phân nhỏ từng từ ra để tìm kiếm.

Xếp hàng tìm kiếm

Thực tế thì MySQL không trả về một dãy dự liệu có xếp hạng, vì vậy bạn không thể biết được đâu là bài có nội dung phù hợp nhất.

Tuy nhiên kể từ phiên bản 5.6 trở đi thì bạn có thể sử dụng order by để sắp xếp. Chi tiết thế nào thì mình sẽ trình bày ở các bài tiếp theo.

3. Những đặc điểm của Full Text Search trong MySQL

Sau đây là một số tính năng quan trọng của full-text-search trong MySQL:

Hoạt động giống lệnh Like

MySQL cung cấp câu LIKE để thực hiện tìm kiếm toàn văn. Bạn có thể áp dụng nó như Full Text Serch.

Tự động cập nhật Index

MySQL tự động cập nhật chỉ mục của cột văn bản bất cứ khi nào dữ liệu của cột đó thay đổi.

Kích thước index vừa phải

Kích thước của chỉ số FULLTEXT tương đối nhỏ.

Tốc độ

Cuối cùng nhưng không kém phần quan trọng, full-text-search cho tốc độ tìm kiếm nhanh hơn những câu truy vấn thông thường, bởi nó đã được lập chỉ mục khi mới thêm / cập nhật data.

4. Một số thao tác với Full Text Search

Dưới đây là một số thao tác với full text search.

* Lưu ý: Không phải tất cả các kiểu định dạng của table đều có thể áp dụng full text search. Trong phiên bản MySQL 5.6 trở lên, chỉ có các table thiết lập kiểu MyISAM và InnoDB là có hỗ trợ.

Như vậy là trong bài này mình đã giải thích cho các bạn hiểu ý nghĩa của full text search là gì trong MySQL rồi. Đây là bài lý thuyết nên cũng không có gì đặc biệt. Mình sẽ hướng dẫn cách tạo chi tiết hơn ở các bài tiếp theo.

Cùng chuyên mục:

Hàm ENCRYPT trong MySQL

Hàm ENCRYPT trong MySQL

Cách sử dụng ENCRYPT trong MySQL

Hàm MD5 trong MySQL

Hàm MD5 trong MySQL

Cách sử dụng MD5 trong MySQL

Hàm OLD_PASSWORD trong MySQL

Hàm OLD_PASSWORD trong MySQL

Cách sử dụng OLD_PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Cách sử dụng PASSWORD trong MySQL

Hàm ASCII trong MySQL

Hàm ASCII trong MySQL

Cách sử dụng ASCII trong MySQL

Hàm CHAR_LENGTH trong MySQL

Hàm CHAR_LENGTH trong MySQL

Cách sử dụng CHAR_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Cách sử dụng CHARACTER_LENGTH trong MySQL

Hàm CONCAT trong MySQL

Hàm CONCAT trong MySQL

Cách sử dụng CONCAT trong MySQL

Hàm CONCAT_WS trong MySQL

Hàm CONCAT_WS trong MySQL

Cách sử dụng CONCAT_WS trong MySQL

Hàm FIELD trong MySQL

Hàm FIELD trong MySQL

Cách sử dụng FIELD trong MySQL

Hàm FIND_IN_SET trong MySQL

Hàm FIND_IN_SET trong MySQL

Cách sử dụng FIND_IN_SET trong MySQL

Hàm FORMAT trong MySQL

Hàm FORMAT trong MySQL

Cách sử dụng FORMAT trong MySQL

Hàm INSERT trong MySQL

Hàm INSERT trong MySQL

Cách sử dụng INSERT trong MySQL

Hàm INSTR trong MySQL

Hàm INSTR trong MySQL

Cách sử dụng INSTR trong MySQL

Hàm LCASE trong MySQL

Hàm LCASE trong MySQL

Cách sử dụng LCASE trong MySQL

Hàm LEFT trong MySQL

Hàm LEFT trong MySQL

Cách sử dụng LEFT trong MySQL

Hàm LENGTH trong MySQL

Hàm LENGTH trong MySQL

Cách sử dụng LENGTH trong MySQL

Hàm LOCATE trong MySQL

Hàm LOCATE trong MySQL

Cách sử dụng LOCATE trong MySQL

Hàm LOWER trong MySQL

Hàm LOWER trong MySQL

Cách sử dụng LOWER trong MySQL

Hàm LPAD trong MySQL

Hàm LPAD trong MySQL

Cách sử dụng LPAD trong MySQL

Top