Попытка понять ошибку «Не удается найти индекс FULLTEXT, соответствующий списку столбцов» - PullRequest
2 голосов
/ 16 июля 2011

Поскольку я пытаюсь понять SQL, немного поиграв с кодом, я столкнулся с этой ситуацией.Я запускаю этот код

SELECT * FROM jobs WHERE MATCH ( title, location, description ) AGAINST ( 'New York designer')

, и я получаю правильные результаты строки.Однако, если я спрашиваю себя: «Хорошо, а что, если я захочу просто посмотреть на один столбец?»

 SELECT * FROM  jobs WHERE  match(location) against ('designer')

Я получаю сообщение об ошибке «Не удается найти индекс FULLTEXT, соответствующий списку столбцов».Зачем?Я не уверен, что означает эта ошибка.Я просто удаляю два слова и запятые.

Я изменяю таблицу заданий, чтобы использовать механизм MyISAM.Означает ли это, что он доступен для поиска или "FULLTEXT"?Так как InnoDB не доступен для поиска, это правильно сказать?

Но теперь, когда он изолирован от поиска в одном столбце, это проблема?

Дайте мне знать, если это имеет смысл, я отредактирую.

Ответы [ 2 ]

7 голосов
/ 16 июля 2011

FULLTEXT индексы являются функцией механизма хранения MyISAM.

Невозможно сопоставить столбец местоположения, если только в этом столбце нет индекса FULLTEXT.

Список столбцов MATCH () должен точно соответствовать списку столбцов в некотором определении индекса FULLTEXT для таблицы, если только этот MATCH () не находится в БУЛЕВОМ РЕЖИМЕ. Поиск в логическом режиме может выполняться по неиндексированным столбцам, хотя они могут быть медленными.

http://dev.mysql.com/doc/refman/5.0/en/fulltext-restrictions.html

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

когда все было правильно и все еще получал эту ошибку, я обнаружил, что КЛЮЧИ были отключены ..

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

у меня не получилось, когда я отключил ключи ...

я включил клавиши "ALTER TABLE table name ENABLE KEYS;

и все работало нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...