我在使用 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 并找到正确的行。
关于MySQL 与斜杠匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13117964/