昨天运营突然发现一个问题,在产品详情页,某些产品的详情页底部无法显示推荐的产品列表,于是我打开那几个产品的详情页查看了产品推荐接口的请求数据,接口返回的是“Fatal error encountered during command execution”,很显然是mysql报错了,关键是这个错误太模糊了,坑爹货!于是我把接口的sql抠出来在测试环境执行,怎么都不报错,但是在正式环境就那几个产品报错,换个产品就不报错!

报错就下面这个德行:

 Lost connection to MySQL server during query
Mysql全文检索match against之大坑!!!后人请警醒

于是我注意到了match against,因为我的这个语句用了全文检索,于是我注意到了是不是关键词中包含中文的问题,经过一番测试,一些不报错的产品中也是包含有中文的,这就日了狗了!

于是我又查了一些match against相关文档,match against可以用于中文检索,但是前提是你必须把中文进行分词后然后再用空格连接起来再使用全文检索,于是我一不做二不休,使用正则表达式把关键词中的中文全部过滤掉了,结果就好了,就这样好了!!!

但是在我本地的测试环境,对中文不做任何处理,都可以正常运行!我也不知道mysql有什么玄机,挺操蛋的!

相关文章: