Ok, finalmente me di cuenta de esto. Parece que ya había borrado las palabras vacías de myisam, pero no las de innodb. Es un poco más difícil de hacer que para myisam, pero estos son los pasos para cualquier otra persona que pueda necesitarlo:
En su /etc/my.cnf (o my.ini en Windows) agregue estas líneas:
Crea una tabla de palabras vacías. Hice el mío en una base de datos llamada settings
y una tabla llamada innodb-stopwords
. No puede simplemente configurar innodb_ft_enable_stopword = 0
, tienes que crear y vincular a una tabla.
Asegúrese de que su tabla sea innodb y agregue una columna llamada value
, varchar(?), utf8_general_ci. Puede dejarlo vacío o agregar valores a la tabla.
innodb_ft_enable_stopword = 1
innodb_ft_server_stopword_table = settings/innodb-stopwords
Reinicie su servidor mysql.
Suelte y vuelva a crear sus índices de texto completo.
Si no desea reiniciar el servidor, puede configurar dinámicamente las variables con (también actualice el archivo cnf/ini para el próximo reinicio del servidor)
--innodb_ft_enable_stopword=1
--innodb_ft_server_stopword_table=db_name/table_name
No veo ninguna solución para recrear el índice... aunque puede hacerlo con un solo comando para que la tabla esté bloqueada todo el tiempo y sus usuarios no reciban errores:
ALTER TABLE `tablename` DROP INDEX indexname, ADD FULLTEXT(`columnname`);