我在搜索包含斜杠(例如ac / dc)且mysql匹配的产品时遇到了一些问题。
似乎有某种设置影响了这一点。在我的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。
答案 0 :(得分:0)
查看XAMP和生产服务器中的存储引擎。全文搜索http://dev.mysql.com/doc/refman/5.1/en/fulltext-restrictions.html有限制。此外,表定义必须与全文搜索匹配。
虽然双引号是,但斜杠不是特殊字符。因此,+ac/dc*
必须提供与"+ac/dc*"
不同的结果集。
除此之外,我能想到的唯一区别是桌面内容不同。
答案 1 :(得分:0)
这是一个服务器问题,直到今天我仍然不知道如何解决它,我所做的是改变了整个系统的工作方式。
我有一个搜索表,我存储搜索词,在那里我删除斜线,因此AC / DC变为ACDC,在搜索时我修改查询以再次删除斜杠,以便它尝试匹配ACDC并找到正确的行。 / p>