2. 19:11 12/08/2026
Đáp án được người đặt câu hỏi chọn
Chào bạn Thảo My,
Không có một lựa chọn đúng cho mọi search use case. Hãy xác định trước nhu cầu: tìm theo cụm từ chính xác, token, prefix, không dấu/có dấu, ranking, typo tolerance, autocomplete, filter theo forum/date, tốc độ cập nhật và quy mô dữ liệu. LIKE có thể phù hợp cho prefix có index trong một số trường hợp, nhưng leading wildcard thường khó tận dụng B-tree index.
MySQL FULLTEXT có thể là điểm bắt đầu hợp lý khi yêu cầu tương đối đơn giản và muốn vận hành ít thành phần hơn. Tuy nhiên, hãy kiểm thử analyzer/tokenization trên tập văn bản tiếng Việt thật, stopword/min token length, cách xử lý dấu, ranking và filter kết hợp với điều kiện nghiệp vụ. Đừng triển khai chỉ với vài câu demo.
Khi cần typo tolerance, synonym, autocomplete phức tạp, relevance tuning sâu, faceting hoặc query volume lớn, search engine chuyên dụng có thể phù hợp hơn. Khi đó cần pipeline indexing, đồng bộ/độ trễ, retry, quyền truy cập và cách xóa dữ liệu theo retention.
Dù dùng công cụ nào, search result phải tuân thủ authorization: filter tenant/forum/visibility ở source of truth hoặc index có scope chính xác. Đừng để search index trở thành đường vòng lộ nội dung private.
0