mysql与斜线对抗



我在搜索包含斜线(例如AC/DC)的产品时遇到一些问题。

似乎有某种影响这一点的环境。在我的Windows的XAMMP上,默认设置中的每一个都很好:

MATCH (content) AGAINST ('+ac/dc*' IN BOOLEAN MODE)

MATCH (content) AGAINST ("+ac/dc*" IN BOOLEAN MODE)

MATCH (content) AGAINST ('"+ac/dc*"' IN BOOLEAN MODE)

MATCH (content) AGAINST ("'+ac/dc*'" IN BOOLEAN MODE)

MATCH (content) AGAINST ('+ac/dc*' IN BOOLEAN MODE)

,但它们都无法在我们的生产服务器上使用,该服务器在Linux系统上(我不知道哪个发行版,但它在Plesk下)。

以及我所说的"不工作"。查询返回0行。生产服务器的ft_min_word为2。

这是一个服务器问题,直到今天我仍然不知道如何修复它,我所做的事情已更改了整个系统的工作方式。

我有一个存储搜索单词的搜索表,在那里删除斜线,因此AC/DC变为ACDC,然后在搜索时,我修改了查询以再次删除斜线,因此它尝试匹配ACDC并找到正确的行。/p>

查看XAMP和Production Server中的存储引擎。在FullText搜索上有限制http://dev.mysql.com/doc/refman/5.1/en/fulltext-resterictions.html。另外,表定义必须匹配全文搜索。

斜线不是一个特殊的角色,尽管双引号是。因此,+ac/dc*必须给出与"+ac/dc*"不同的结果集。

除此之外,我能想到的唯一区别将是不同的表内容。

相关内容

  • 没有找到相关文章

最新更新