Trong thời gian đợi xây dựng server ES thì tạm thời e chuyển qua FTS dùng tạm. Mọi việc không có gì đáng nói đến khi e nhớ ra còn cái STOP WORDS chết tiệt trong FTS này E làm theo https://dev.mysql.com/doc/refman/5....stopwords-stopwords-for-innodb-search-indexes để tắt nó đi mà vẫn không được. Cụ nào sử dụng rồi hướng dẫn e với
MySQL FTS có 2 lưu ý về cấu hình, anh hay dùng như sau Code: [mysqld] ft_min_word_len=1 ft_stopword_file='' - ft_min_word_len là qui định chiều dài tối thiểu 1 word sẽ được đánh index. Default là 4 hay sao đó. Nhưng như vậy các từ ngắn như: ant, man, ... sẽ không được index. Anh hay dùng là 1 - ft_stopword_file là file chứ các stop words sẽ bị bỏ qua không index. Anh sửa lại là không dùng. Sau khi sửa config như trên thì phải restart mysql. Sửa xong thì kiểm tra lại bằng lệnh sau: Code: show variables like '%ft%'; hoặc SHOW VARIABLES LIKE 'ft_min_word_len'; Nếu table đã có data và đã đánh fulltext rồi mà giờ mới sửa cấu hình thì phải đánh index lại (nếu data lớn thì sẽ khá lâu) Code: REPAIR TABLE my_table QUICK;
E dùng câu lệnh này nó toàn báo là không được phép. Sau đó e xóa index đi và đánh lại. Nhưng vẫn không được a Nếu search với câu lệnh AGAINST ('+acb +of + bcd +and' IN BOOLEAN MODE) vẫn không trả về gì. Xóa 2 từ stop words of với and đi thì ra kết quả. Chứng tỏ vẫn chưa ignore đc stop words E dùng mysql 5.7
Innodb setting kiểu khác chứ không phải không hỗ trợ bạn ạ, cú pháp kia chỉ cho myisam, lâu mình cũng không dùng nên cùng không nhớ, để tìm lại xem
Bạn tham khảo bài viết này https://stackoverflow.com/questions/12678920/ignoring-mysql-fulltext-stopwords-in-query