【问题标题】:How to migrate MySQL Fulltext Search from MyISAM to InnoDB如何将 MySQL 全文搜索从 MyISAM 迁移到 InnoDB
【发布时间】:2015-09-02 22:28:43
【问题描述】:

我需要从 MyISAM 迁移到 InnoDB。在此过程中,我发现应用程序现在在某些搜索中返回错误:

1064 语法错误,意外 ')',期待 $end

是否有任何重大变化或我必须逃避的角色? 80% 的搜索工作正常。

字符 -- 和 ) 和 @ 不再起作用

例如

SELECT MATCH (anchor) AGAINST ('te--st' IN BOOLEAN MODE) score
FROM seo_content_links

SELECT MATCH (anchor) AGAINST ('te)st' IN BOOLEAN MODE) score
FROM seo_content_links 

SELECT MATCH (anchor) AGAINST ('te@st' IN BOOLEAN MODE) score
FROM seo_content_links  

这看起来很像 MySQL 中的一个错误。

【问题讨论】:

  • 您能否提供与实际查询一起使用...
  • 你确定--周围没有空格吗? -- 是“行尾注释”标记。
  • 是的。这是常规文本输入。如果这种行为发生了变化,我需要避免这种情况。该应用程序正在使用 myisam 表全文搜索在 mysql 5.5 上运行。

标签: mysql full-text-search innodb


【解决方案1】:

我怀疑这是 MySQL 5.6.x 中的错误。

一种可能的解决方案是替换有问题的字符:

$text = addslashes(str_replace(array("--", "@", ")", "(", "-"), " ", $text));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-27
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多