繁体   English   中英

Mysql FULL TEXT索引搜索错误

[英]Mysql FULL TEXT index search error

所以我在表的一列中添加了全文索引,我的数据库引擎是MyIsam,但仍然收到此讨厌的错误:

致命错误:在...中,消息为“找不到与列列表匹配的FULLTEXT索引”的未捕获异常“ mysqli_sql_exception” ...我的查询:

$stmt = $db->prepare("SELECT loc, lt, lg FROM locations WHERE MATCH(loc) AGAINST(?) ");

如何解决这个问题,我应该寻找什么?

您应该寻找FULLTEXT索引的定义。 显然,除了单个loc列外,它还为多个列定义了。

mysql> SHOW CREATE TABLE locations\G

CREATE TABLE `locations` (
  `loc` text,
  `name` text,
  `summary` text,
  FULLTEXT KEY `name` (`name`,`summary`,`loc`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

您在MATCH()函数中命名的列必须是全文索引的所有列,并且它们的顺序必须相同。

例:

-- WRONG; only using one of the three columns
SELECT loc, lt, lg FROM locations WHERE MATCH(loc) AGAINST(?)

-- WRONG; using all three columns, but in a different order than the index
SELECT loc, lt, lg FROM locations WHERE MATCH(loc, name, summary) AGAINST(?)

-- RIGHT:
SELECT loc, lt, lg FROM locations WHERE MATCH(name, summary, loc) AGAINST(?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM