2012-01-17 3 views
0

Я создал поиск раньше, и он отлично работает, но, пытаясь сделать это в другой таблице, у меня возникают некоторые проблемы.FULLTEXT В поисках неполадок

Я получаю ошибку ...

SQL-запрос не удалось. Проверьте свой запрос.

Ошибка Возвращается: Не удается найти полнотекстовый индекс соответствия в списке столбцов

У меня есть (насколько мне известно) успешно преобразовали столбцы в полнотекстовые и база данных устанавливается на ...

Вот мой SQL информации ...

CREATE TABLE `users` (
    `auto` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` varchar(6) DEFAULT NULL, 
    `username` varchar(15) DEFAULT NULL, 
    `first_name` varchar(20) NOT NULL DEFAULT '', 
    `last_name` varchar(20) NOT NULL DEFAULT '', 
    `email` varchar(30) NOT NULL DEFAULT '', 
    `password` varchar(128) NOT NULL DEFAULT '', 
    `ranking` varchar(128) DEFAULT '1', 
    `sex` varchar(128) NOT NULL DEFAULT '', 
    `active` varchar(128) NOT NULL DEFAULT '0', 
    `ppic` varchar(128) NOT NULL DEFAULT 'ppic.jpg', 
    `time_zone` varchar(128) DEFAULT 'America/Los_Angeles', 
    `adult_filter` varchar(128) DEFAULT '0', 
    PRIMARY KEY (`auto`), 
    FULLTEXT KEY `user_id` (`user_id`,`username`,`first_name`,`last_name`,`email`,`password`,`sex`,`active`,`ppic`,`time_zone`,`adult_filter`), 
    FULLTEXT KEY `user_id_2` (`user_id`,`username`,`first_name`,`last_name`), 
    FULLTEXT KEY `ft_index_name2` (`user_id`,`username`,`first_name`,`last_name`), 
    FULLTEXT KEY `ft_index_name32` (`user_id`,`username`,`first_name`,`last_name`,`email`,`password`,`ranking`,`sex`,`active`,`ppic`,`time_zone`,`adult_filter`), 
    FULLTEXT KEY `ft_index_name322` (`user_id`), 
    FULLTEXT KEY `ft_index_name3223` (`first_name`), 
    FULLTEXT KEY `ft_index_name32233` (`last_name`), 
    FULLTEXT KEY `ft_index_name322433` (`username`), 
    FULLTEXT KEY `ft_index_name3232433` (`username`) 
) ENGINE=MyISAM AUTO_INCREMENT=40 DEFAULT CHARSET=utf8

, если вы не заметили, основываясь на этом, я понятия не имею, что я делаю с полнотекстовым ключом, который может быть проблемой. Тем не менее, я сделал что-то подобное в первый раз, и все работает отлично.

Это мой поисковый запрос ...

SELECT user_id, username, first_name, last_name, 
MATCH(username, first_name, last_name) AGAINST('" . $search . "') AS score 
FROM users 
WHERE MATCH(username, first_name, last_name) AGAINST('" . $search . "') 
ORDER BY username

Кто-нибудь знает, что может быть причиной этой проблемы? Я занимаюсь этим несколько дней и не могу понять проблему. Любая помощь приветствуется, спасибо.

ответ

0

Вам нужен ключ FULLTEXT, который выглядит следующим образом:

FULLTEXT KEY `ft_index_thisoneiscorrect` (username, first_name, last_name) 

(Обратите внимание, что список соответствующих столбцов таким же, как в списке столбцов вы совпадающие в запросе.)

Избавьтесь от всех остальных. Большинство из них бесполезны, а некоторые из них абсолютно опасны.

+0

Хорошо, что списки в индексе полнотекстового поиска, необходимые для соответствия запросу, это то, что меня отбрасывало. Кажется, это был чистый шанс в моей последней, что я правильно понял. Большое спасибо за Вашу помощь. – Ian

 Смежные вопросы

  • Нет связанных вопросов^_^