3

我在搜索包含与 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。

4

2 回答 2

1

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

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

于 2012-12-17T12:27:02.283 回答
0

查看 XAMP 和生产服务器中的存储引擎。全文搜索有限制http://dev.mysql.com/doc/refman/5.1/en/fulltext-restrictions.html。此外,表定义必须匹配全文搜索。

斜杠不是特殊字符,尽管双引号是。因此,+ac/dc*必须给出不同的结果集,"+ac/dc*"例如。

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

于 2012-10-29T08:41:37.890 回答