Đến nội dung chính
sang.id.vn
Quay lại

Config MySQL để full-text search tiếng Việt chuẩn chỉnh

English

Nếu bạn đã từng thử full-text search tiếng Việt trong MySQL thì chắc hẳn biết cảm giác — kết quả thiếu lung tung, từ quan trọng thì không tìm được. Mình cũng gặp vấn đề này khi làm project và phải mò một hồi mới hiểu nguyên nhân. Hóa ra config mặc định của MySQL không phù hợp với tiếng Việt.

Vấn đề ở config mặc định

MySQL mặc định có mấy cái gây khó cho tiếng Việt:

Cách sửa

Thêm mấy dòng này vào file my.cnf:

ft_min_word_len=1
ft_stopword_file=""
innodb_ft_enable_stopword="OFF"
innodb_ft_min_token_size=1

Giải thích:

Sau khi đổi config

Cần rebuild lại full-text index:

ALTER TABLE ten_bang DROP INDEX ten_index;
ALTER TABLE ten_bang ADD FULLTEXT(ten_cot);

Rồi query bình thường:

SELECT * FROM ten_bang WHERE MATCH(ten_cot) AGAINST('tìm kiếm tiếng việt' IN NATURAL LANGUAGE MODE);

Lưu ý


Share this post on:

Bài trước
Ghi chú NGINX — Những thứ mình hay dùng lại
Bài tiếp
Bật strict datatype trong PHP