Ok, cuối cùng tôi đã tìm ra điều này. Có vẻ như tôi đã xóa các từ dừng myisam nhưng không xóa các từ dừng innodb. Nó hơi khó nhưng khó làm hơn so với myisam nhưng đây là các bước dành cho bất kỳ ai khác có thể cần nó:
Trong /etc/my.cnf (hoặc my.ini trên windows) của bạn, hãy thêm các dòng sau:
Tạo bảng từ dừng. Tôi đã tạo của tôi trong một db có tên là settings
và một bảng có tên innodb-stopwords
. Bạn không thể chỉ đặt innodb_ft_enable_stopword = 0
, bạn phải tạo và liên kết đến một bảng.
Đảm bảo rằng bảng của bạn là innodb và thêm một cột có tên là value
, varchar (?), utf8_general_ci. Bạn có thể để trống hoặc thêm các giá trị vào bảng.
innodb_ft_enable_stopword = 1
innodb_ft_server_stopword_table = settings/innodb-stopwords
Khởi động lại máy chủ mysql của bạn.
Thả và tạo lại các chỉ mục văn bản đầy đủ của bạn.
Nếu bạn không muốn khởi động lại máy chủ, bạn có thể đặt động các biến bằng (cũng cập nhật tệp cnf / ini cho lần khởi động lại máy chủ tiếp theo)
--innodb_ft_enable_stopword=1
--innodb_ft_server_stopword_table=db_name/table_name
Tôi không thấy giải pháp nào để tạo lại chỉ mục ... mặc dù vậy, bạn có thể thực hiện điều đó bằng một lệnh để bảng bị khóa toàn bộ thời gian và người dùng của bạn không gặp lỗi:
ALTER TABLE `tablename` DROP INDEX indexname, ADD FULLTEXT(`columnname`);