Thứ Tư, 26 tháng 7, 2023

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.

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é!

Mục lục

  • 1. Full Text Search là gì?
  • 2. Vậy tại sao nên sử dụng Full Text Search trong MySQL?
    • Hiệu suất
    • Sự linh hoạt
    • Xếp hàng tìm kiếm
  • 3. Những đặc điểm của Full Text Search trong MySQL
    • Hoạt động giống lệnh Like
    • Tự động cập nhật Index
    • Kích thước index vừa phải
    • Tốc độ
  • 4. Một số thao tác với Full Text Search

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 tranvanbinh.vn

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.

  • Tạo Full Text Search
  • Match và Against trong MySQL
  • Boolean Full-Text Searches
  • Query Expansion 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.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Full Text Search là gì? Tại sao nên sử dụng trong MySQL?, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master