2015-01-10 52 views
0

,所以我得到一個錯誤,當我嘗試使用全文檢索不能正常工作的MySQL

SELECT views, keywords, title, url, thumbnail, 
     MATCH(keywords,title) AGAINST ('%$search_value%') AS relevance 
    FROM straight 
WHERE MATCH (keywords,title) AGAINST ('%$search_value%') 
ORDER BY relevance DESC 

這是由於我沒有啓用全文搜索,但我似乎無法啓用它。當我運行下面的SQL:

ALTER TABLE straight ADD FULLTEXT(keywords, title) 

我得到這樣的響應:試圖再次運行第一個查詢我得到的失敗

#1191 - Can't find FULLTEXT index matching the column list 

MySQL returned an empty result set (i.e. zero rows). (Query took 3.8022 sec) 

然後

我不能告訴它爲什麼不註冊。任何幫助都會很棒。 謝謝!

編輯:

我TABEL:

CREATE TABLE `straight` (
 `url` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `title` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `keywords` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `production` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `categories` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `views` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `likes` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `length` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `thumbnail` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, 
 `date` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, 
 UNIQUE KEY `url` (`url`), 
 FULLTEXT KEY `url_2` (`url`,`title`,`keywords`,`production`, 
     `categories`,`views`,`likes`,`length`,`thumbnail`,`date` 
), ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
+0

您運行的是哪個版本的MySQL?你能編輯你的問題來顯示你的「直」表的定義嗎?在某些版本中,您的表必須位於「MyISAM」訪問方法中。另外,您不需要'FULLTEXT'中的'AGAINST()'參數中的'%'符號。 –

+0

@OllieJones該表是MyISAM存儲引擎。我不確定如何檢查這是在一個hostgator服務器上的MySQL版本。謝謝 – BubblewrapBeast

+0

如果表是MyISAM,服務器版本並不重要。 –

回答

0

你需要匹配,準確,列在你要搜索一個FULLTEXT指數。您所擁有的FULLTEXT索引具有比您需要更多的列。

嘗試添加您提到的那個。

ALTER TABLE straight ADD FULLTEXT(keywords, title) 

然後看錶定義並確保它在那裏。