Tìm hiểu về Full – text search và cách áp dụng trong Dự án 1

16:35 12/12/2024

Tính năng tìm kiếm là một phần không thể thiếu trong bất kỳ hệ thống nào yêu cầu người dùng truy cập và tương tác với lượng thông tin lớn. Nó không chỉ giúp người dùng tiết kiệm thời gian và công sức mà còn nâng cao hiệu suất công việc, khả năng cạnh tranh và sự hài lòng của người sử dụng.

Tìm kiếm với toán tử LIKE trong SQL

Câu truy vấn LIKE “%$keyword%” là một cách tìm kiếm trong cơ sở dữ liệu SQL, sử dụng toán tử LIKE để tìm kiếm các giá trị trong cột chứa một chuỗi con cụ thể. 

Cụ thể:

  • LIKE: Dùng để so khớp chuỗi theo mẫu (pattern matching), giúp tìm kiếm các dữ liệu không chính xác hoặc không hoàn toàn khớp.
  • %: Đại diện cho bất kỳ chuỗi ký tự nào, kể cả chuỗi rỗng. Khi đặt ở đầu và cuối chuỗi tìm kiếm (như trong “%$keyword%”), nó có nghĩa là tìm kiếm bất kỳ giá trị nào chứa keyword ở bất kỳ vị trí nào trong chuỗi.

Ví dụ: 

$keyword = “php”;

$query = “SELECT * FROM articles WHERE content LIKE ‘%$keyword%'”;

Trong ví dụ trên, câu truy vấn sẽ tìm tất cả các bài viết trong bảng articles có chứa từ “php” ở bất kỳ đâu trong cột content.

Ưu và nhược điểm:

  • Ưu điểm: Dễ sử dụng và phổ biến trong các tình huống tìm kiếm cơ bản.
  • Nhược điểm: Tìm kiếm bằng LIKE với % ở cả hai đầu có thể chậm, đặc biệt khi dữ liệu lớn, vì nó không thể tận dụng chỉ mục hiệu quả và phải quét toàn bộ bảng để tìm kiếm.

Full – text search là gì và hoạt động như thế nào?

Full – text search (tìm kiếm toàn văn) là một kỹ thuật tìm kiếm trong cơ sở dữ liệu cho phép tìm kiếm văn bản dựa trên các từ khóa có trong nội dung. Nó giúp tìm ra những mục dữ liệu chứa từ hoặc cụm từ phù hợp với yêu cầu tìm kiếm của người dùng. Đây là một công cụ rất mạnh mẽ và thường được áp dụng trong các hệ thống quản lý nội dung, trang web tìm kiếm, và các ứng dụng yêu cầu tìm kiếm văn bản.

Full – text search hoạt động bằng cách phân tích văn bản trong cơ sở dữ liệu và lập chỉ mục các từ. Cơ sở dữ liệu lưu trữ các chỉ mục từ và sử dụng các chỉ mục này để thực hiện tìm kiếm nhanh chóng. Các tính năng chính của Full – text search bao gồm:

  • Chỉ mục từ: Tạo chỉ mục cho các từ trong văn bản để tìm kiếm nhanh hơn.
  • Phân tích từ: Tách văn bản thành các từ đơn và loại bỏ các từ không quan trọng như “và”, “hoặc”, “là”…
  • Tìm kiếm theo từ khóa: Cho phép tìm kiếm các từ, cụm từ, hoặc các cụm từ giống nhau trong văn bản.
  • Tìm kiếm theo độ liên quan: Xác định mức độ liên quan của các kết quả tìm kiếm và trả về các kết quả có độ liên quan cao nhất.

Các phương pháp Full – text search trong cơ sở dữ liệu

Một số cơ sở dữ liệu phổ biến hỗ trợ full-text search như MySQL, PostgreSQL, và SQLite. Dưới đây là một số tính năng trong các hệ quản trị cơ sở dữ liệu này:

  • MySQL: Sử dụng FULLTEXT indexes trong các bảng MyISAM hoặc InnoDB. Bạn có thể tìm kiếm các từ trong các cột có chỉ mục FULLTEXT.
  • PostgreSQL: Sử dụng tsvector và tsquery để hỗ trợ tìm kiếm toàn văn bản.

Cách áp dụng Full – text search trong PHP

Khi làm việc với raw PHP và cơ sở dữ liệu, bạn có thể áp dụng full-text search để tìm kiếm nhanh chóng và hiệu quả. Giả sử bạn sử dụng MySQL với InnoDB và sử dụng FULLTEXT indexes.

  • Bước 1: Tạo bảng và chỉ mục FULLTEXT: Trước tiên, bạn cần tạo bảng với một cột chứa văn bản cần tìm kiếm và tạo chỉ mục FULLTEXT cho cột đó.

  • Bước 2: Thêm dữ liệu vào bảng: Chèn một số bài viết vào bảng “articles”. 

  • Bước 3: Tìm kiếm với FULLTEXT Search trong PHP: Dưới đây là một ví dụ về cách sử dụng MATCH … AGAINST để thực hiện tìm kiếm full-text trong PHP.

Full – text search là một công cụ mạnh mẽ để tìm kiếm văn bản trong cơ sở dữ liệu. Việc áp dụng Full – text search trong PHP hoặc các ngôn ngữ Backend khác giúp cải thiện hiệu suất và mang lại kết quả tìm kiếm chính xác hơn. Tuy nhiên, để có được hiệu suất tốt nhất, bạn cần phải thiết kế cơ sở dữ liệu với chỉ mục phù hợp và tối ưu hóa các truy vấn tìm kiếm.

Giảng viêb Nguyễn Lê Phương
Bộ môn Công nghệ thông tin
FPT Polytechnic TP HCM

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.