+7

Full-Text Search là gì, liệu nó có thật sự cần thiết cho dự án của bạn?

Ở đâu đó trên Shopee

Untitled

Lấy ví dụ khi chung ta search từ khóa "bàn phím cơ giá rẻ" trên Shopee, kết quả hiển thị ra tương tự như hình trên.

Sau khi xem hình, một dev chưa biết khái niệm về Full-Text Search sẽ nghĩ ngay giải pháp kiểu như:

SELECT * FROM products WHERE name LIKE "%bàn%" 
							OR name LIKE "%phím%"
							OR name LIKE "%cơ%"
							OR name LIKE "%giá%"
							OR name LIKE "%rẻ%"

Nếu xét về giải pháp thì đây vẫn là một giải pháp sẽ cho kết quả đúng, nhưng cái giá phải trả là ngốn rất nhiều tài nguyên của Database

Hôm nay mình sẽ giới thiệu về khái niệm Full-Text Search, từ được định nghĩa để giải quyết bài toán tương tự ở trên

Full-Text Search là gì?

Untitled

Như cái tên của nó đã nói, Full-Text Search là tìm kiếm tất cả nhưng gì là text trong database của bạn, nó đem lại một giải pháp Linh độngNhanh

  • Linh động: sử dụng Full-text Search chúng ta không cần chia nhỏ các từ khóa đơn ra riêng biệt như cách ở trên, giải pháp đã tự xử lý những từ liên quan trong quá trình tìm kiếm
  • Nhanh: bằng việc sử dụng "Inverted Index" nó đem đến tốc độ tìm kiếm nhanh hơn việc dùng tìm kiếm thông thường

Full-Text Search có thật sự cần thiết

Untitled

Nếu bạn đang xây dựng một hệ thống đặc thù, không cần quan trọng việc tìm kiếm, hay chỉ cần tìm kiếm chính xác từ hoặc cụm từ là đủ thì Full-Text Search không cần thiết với dự án của bạn.

Nhưng nếu bạn xây dựng một hệ thống bán hàng, quản lý hàng hóa, cần phục vụ tốt quá trình tìm kiếm để đem lại hiểu quả cho người sử dụng thì Full-Text Search thật sự cần thiết đối với dự án của bạn

Ngoài ra ở các website lớn, hoặc như Google việc bạn search một nội dung nó còn có thể dịch ra các thứ tiếng, hoặc sử dụng các công nghệ để đoán hiểu được bạn cần gì, từ đó đưa ra các kết quả mong muốn... Đó là một phạm trụ vũ trụ, hy vọng mình có dịp biết và chia sẽ cho các bạn 😂

Full-Text Search được hỗ trợ ở đâu?

Untitled

Hiện này theo xu hướng phát triển, cũng khá nhiều các hệ quản trị CSDL hỗ trợ Full-Text Search, điển hình như

  • Mysql
  • Elasticsearch
  • PostgreSQL

( Các bạn có thể xem thêm ở link bên dưới )

Tài liêu tham khảo


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí