Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 全文搜索不起作用_Mysql_Full Text Search - Fatal编程技术网

Mysql 全文搜索不起作用

Mysql 全文搜索不起作用,mysql,full-text-search,Mysql,Full Text Search,因此,当我尝试使用 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 这是因为我没有启用全文搜索,但我似乎无

因此,当我尝试使用

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)
我得到的答复是:

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

您需要一个完全匹配要搜索的列的全文索引。您拥有的全文索引的列数超出了您的需要

尝试添加你提到的那个

ALTER TABLE straight ADD FULLTEXT(keywords, title)

然后查看表定义并确保它在那里。

您正在运行哪个版本的MySQL?您能否编辑您的问题以显示
直线表的定义?在某些版本中,表必须采用
MyISAM
access方法。此外,您不需要在
全文
@OllieJones中的
反对()参数中使用
%
符号。该表是MyISAM存储引擎。我不确定如何检查MySQL的版本,这是在hostgator服务器上。感谢服务器版本不在乎表是否是MyISAM。@OllieJones它还能是什么?有什么想法吗?请在创建索引后发布您的表定义。