Не удается найти индекс FULLTEXT, соответствующий списку столбцов (индексы установлены) - PullRequest
39 голосов
/ 13 марта 2012

Я работаю с полным текстом, я выполнил команду для добавления полнотекстового индекса к нескольким комментариям и не вернул никаких ошибок, затем я сделал:

SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');

Что находится в колонке бренда - но я получаю следующее:

Не удается найти индекс FULLTEXT, соответствующий списку столбцов

Eventho, когда мой стол выглядит так:

FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)

Это потому, что я должен использовать name вместо этого? сделать поиск? Или что может быть не так.

Ответы [ 3 ]

94 голосов
/ 13 марта 2012

Предполагая, что вы используете движок MyISAM, выполните:

ALTER TABLE products ADD FULLTEXT(brand);

Полнотекстовый индекс должен содержать ровно столько же столбцов, в том же порядке, который указан в предложении MATCH.

6 голосов
/ 14 февраля 2014

Когда все было правильно и все еще получала эту ошибку, я обнаружил, что KEYS были отключены. Простая ошибка, которая иногда упускается из виду:

Убедитесь, что вы включили ключи в этой таблице.

Это не сработало, когда я отключил ключи. Но когда я включил ключи ALTER TABLE table name ENABLE KEYS;, он работал нормально

5 голосов
/ 28 марта 2018

Если вы не хотите, чтобы столбцы были в том же порядке, что и в предложении о совпадении (или с тем же номером), вы всегда можете использовать «ИЛИ», то есть:

ALTER TABLE products ADD FULLTEXT(brand);
ALTER TABLE products ADD FULLTEXT(product_name);

 SELECT * FROM products WHERE MATCH(brand) AGAINST('+Skoda*' IN BOOLEAN MODE) OR MATCH(product_name) AGAINST('+productName*' IN BOOLEAN MODE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...