我在搜索包含斜线(例如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*"
不同的结果集。
除此之外,我能想到的唯一区别将是不同的表内容。