所以当我尝试使用
时出现错误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
这是因为我没有启用FULLtext搜索,但我似乎无法启用它。当我运行下面的SQL时:
ALTER TABLE straight ADD FULLTEXT(keywords, title)
我得到了这个回复:
MySQL returned an empty result set (i.e. zero rows). (Query took 3.8022 sec)
然后当我再次尝试运行第一个查询时,我得到了失败的
#1191 - Can't find FULLTEXT index matching the column list
我不知道为什么它没有注册。任何帮助都会很棒。 谢谢!
编辑:
我的表格:
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 :(得分:0)
您需要一个完全匹配您要搜索的列的FULLTEXT索引。您拥有的FULLTEXT索引的列数多于您所需的列数。
尝试添加你提到的那个。
ALTER TABLE straight ADD FULLTEXT(keywords, title)
然后查看表格定义并确保它在那里。