Добре, най-накрая разбрах това. Изглежда, че вече имах изчистени стоп думи на myisam, но не и innodb. Това е малко, но по-трудно за изпълнение, отколкото за myisam, но ето стъпките за всеки друг, който може да се нуждае от него:
Във вашия /etc/my.cnf (или my.ini на windows) добавете тези редове:
Създайте таблица със спирателни думи. Направих моята в db, наречен settings
и таблица, наречена innodb-stopwords
. Не можете просто да зададете innodb_ft_enable_stopword = 0
, трябва да създадете и свържете към таблица.
Уверете се, че вашата таблица е innodb и добавете колона, наречена value
, varchar(?), utf8_general_ci. Можете да го оставите празен или да добавите стойности към таблицата.
innodb_ft_enable_stopword = 1
innodb_ft_server_stopword_table = settings/innodb-stopwords
Рестартирайте вашия mysql сървър.
Пуснете и създайте отново вашите пълнотекстови индекси.
Ако не искате да рестартирате сървъра, можете динамично да зададете променливите с (също актуализирайте файла cnf/ini за следващото рестартиране на сървъра)
--innodb_ft_enable_stopword=1
--innodb_ft_server_stopword_table=db_name/table_name
Не виждам решение за пресъздаване на индекса... можете да го направите с една команда, така че таблицата да е заключена през цялото време и вашите потребители да не получават грешки:
ALTER TABLE `tablename` DROP INDEX indexname, ADD FULLTEXT(`columnname`);