Поиск в Mysql по Fulltext полям

Статус
Закрыто для дальнейших ответов.

~FisHBonE~

Well-Known Member
Регистрация
23.05.2005
Сообщения
136
Возникла проблема. Уже второй день не могу решить ее :(
Проблема заключается в том, что не осуществляется поиск в БД по FULLTEXT полям.

Итак, имеется таблица с данными о статьях:
Код:
mysql_query("CREATE TABLE IF NOT EXISTS st_art (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
												name VARCHAR(50) NOT NULL,
												key_words VARCHAR(100) NOT NULL,
												author VARCHAR(50) NOT NULL,
												description TINYTEXT NOT NULL,
												body TEXT NOT NULL,
												post_date VARCHAR(17) NOT NULL,
												last_mod VARCHAR(17),
												views INT NOT NULL DEFAULT '0',
												last_view VARCHAR(17),
												visible ENUM ('0', '1') NOT NULL DEFAULT '0',
												group_id INT(3) NOT NULL DEFAULT '0',
												FULLTEXT (name, key_words, author, description, body))
												TYPE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_bin")
	or die(mysql_error());
Ошибок при создании таблицы не возникает.
Имеется скрипт, который должен производить поиск в этой таблице:

Основной кусок кода:
Код:
$q = $_REQUEST['q'];
$q = clear_query($q); // Прослэшиваем запрос. (см. ./inc/funcs.php)
	
$query = mysql_query("SELECT * FROM st_art WHERE MATCH (name, description, author, body) AGAINST ('$q')")
		or die('<strong>MySQL error: </strong>' . mysql_error());
Проблема в том, что нефига не ищется, а MySQL выдает ошибку:
Код:
Can't find FULLTEXT index matching the column list
Теперь вопрос. Что я сделал не правильно? Ведь при создании таблицы явно указаны FULLTEXT поля.
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Думаю проблема в том, что при определении ты создал полнотекстный индекс для полей: (name, key_words, author, description, body), но при поиске ты указываешь индекс с полями: (name, description, author, body), тобишь фактически это уже другой индекс.
Попробуй заменит на (name, key_words, author, description, body)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ