10/10/2018, 11:24
Fulltext search và tiếng Việt trong MySQL
Các bác cho hỏi có giải pháp nào tìm kiếm chính xác chuỗi tiếng Việt trong MySQL không khi text được lưu trữ với Collation là utf8_unicode_ci ?
Nếu có thể dùng Vietnamese Collation như trong các phiên bản MySQL sau này thì vấn đề sẽ dễ dàng xử lý theo chỉ dẫn ở đây. Nhưng db trên host của tớ chưa hỗ trợ thứ này!
Không lẽ chỉ còn cách tạo một trường chứa text đã loại bỏ dấu để phục vụ riêng việc tìm kiếm hay sao? Dung lượng db sẽ tăng lên quá lớn vì nội dung chủ yếu nằm ở các trường gắn index này.
Mong các bác chỉ giáo.
Nếu có thể dùng Vietnamese Collation như trong các phiên bản MySQL sau này thì vấn đề sẽ dễ dàng xử lý theo chỉ dẫn ở đây. Nhưng db trên host của tớ chưa hỗ trợ thứ này!
Không lẽ chỉ còn cách tạo một trường chứa text đã loại bỏ dấu để phục vụ riêng việc tìm kiếm hay sao? Dung lượng db sẽ tăng lên quá lớn vì nội dung chủ yếu nằm ở các trường gắn index này.
Mong các bác chỉ giáo.
Bài liên quan
Xem ra phải tìm cách khác chủ động hơn
@ superthin : tớ dùng shared host đúng như anhchanghaudau nhận xét.
@ vnntech.com : tuy chỉ riêng tiếng Nga và tiếng Anh được hỗ trợ, nhưng nếu định nghĩa thêm theo cách Hanaziki nói thì có thể giải quyết được phần tiếng Việt. Trên doc của nó có nhắc qua vấn đề này.
Về chi tiết nó cũng khá rối rắm, nhưng xin vắn tắt cách nó làm: khi người dùng / admin gửi bài, bẻ bài đó ra thành một mảng gồm các từ, loại bỏ các từ trùng lắp. Xong, dò trong một table đã được tạo lập từ trước (dữ liệu là cuốn từ điển) và rồi ghi nhận lại vào một table các từ kèm ID của bài viết để khi tìm ra, trả về đúng bài viết.
Không cần phải loại bỏ dấu tiếng Việt nếu dùng MySQL 5.0 trở lên và không có ý định cho người dùng tìm kiếm không dấu.
Với một trang web có khoảng 500 ngàn bài viết, giải pháp trên có thể dùng với Shared Hosting gói có giá < 20USD/tháng.