MYSQL中的中文模糊搜索除了使用全文索引外还有什么办法呢?

时间:2022-06-01 17:45:17
环 境:winxp
语 言:php5.49
数据库:musql5.6
LEVER:一个初学PHP和MYSQL的小粉
数据量:30万左右,不会超过50万。

就是这样的一个网站,就是这样的一个水平的我,却在这几天被一个难题难死了。

因为我之前的这个站是用asp+mssql搭建的,一直在托管的服务器上跑的还行,某一天想把数据库放到阿里云上,查了一下报价,发现mysql的价格比mssql的价格便宜近10倍多,这才认识到为什么开源软件这么受欢迎了,好吧,我也改一下数据库,顺便学习一下早就想学的PHP,说干就干,装PHP装mysql,中间碰到的这个苦难就不说了,改写起来还算顺利,有一些弱智的问题也得到了网友的热情回答,还算顺利,但是直到昨天,我在改写原来MSsql里面的全文索引语句为PHP的全文索引语句时,无意中看到,MSSQL居然不支持中文的全文索引,于是我感到无比的挫败感,这该怎么办呢?这么好的数据库却有这么一个难题,于是想对于一个如此成熟的数据库,同时全文索引又是一个常用功能,那么网上的解决方案一定是现成的,好吧,我开始了百度,这下才发现,很难找到像样的资料可以轻松解决此问题,很多解决方案是那么那么的晦涩难懂。对于我这样的水平的人,看完都不容易更不要说执行了,尝试了其中一种Sphinx+CoreSeek4.1的方案,连安装调试都过不去,可以找到的资料也是很少很少,唉。。。愁人的

所以,我就想问问大家,为什么你们都不需要解决中文模糊搜索过程中全文索引的建立和使用问题吗?这不是一个很普遍的应用吗?

再或者,请你们帮我分析一下,对于这样一个30万左右的数据库,一共10个字段,想对其中5个字段实现模糊搜索,是通过spnix/coreseek建立中文的全文索引的搜索速度快,还是直接使用like 汉字关键词%的速度快呢?或者慢的话又能慢多少呢?

我现在没有这方面的经验,所以一直在纠结,要是二者没有显著性差别,我觉得为这个搭建一个spnix/coreseek环境是不是有些太那个了呢?而且还那么那么那么那么难搭建的,真心懊恼,不知道咋办了,请帮我一下好吗?谢谢大家。

6 个解决方案

#1


建立中文的全文索引的搜索速度快

#2


另外搭建一个简单的MYSQL并不复杂,从官网下载,然后在本机安装就行了。

#3


根据内容提取关键字吧,然后按关键字搜索,
你可以让他们手工录关键字,也可以借助分词技术自动生成关键字,过滤掉无意义的、重复的

#4


http://blog.csdn.net/l286935203/article/details/7950124

mysql默认不支持中文全文索引,不过对于MyISAM表可以使用外部插件mysqlcft来建立中文全文索引。
若是对“mysqlcft”插件不了解,


楼下是 我找到的答案  楼主看看有没有帮助
http://blog.sina.com.cn/s/blog_7865b0830101ach4.html

#5


你是不是说错了,MSSQL是支持中文全文索引的

#6


引用 5 楼 kxjrzyk的回复:
你是不是说错了,MSSQL是支持中文全文索引的

我是说mysql在5.7之前不支持中文全文索引。

#1


建立中文的全文索引的搜索速度快

#2


另外搭建一个简单的MYSQL并不复杂,从官网下载,然后在本机安装就行了。

#3


根据内容提取关键字吧,然后按关键字搜索,
你可以让他们手工录关键字,也可以借助分词技术自动生成关键字,过滤掉无意义的、重复的

#4


http://blog.csdn.net/l286935203/article/details/7950124

mysql默认不支持中文全文索引,不过对于MyISAM表可以使用外部插件mysqlcft来建立中文全文索引。
若是对“mysqlcft”插件不了解,


楼下是 我找到的答案  楼主看看有没有帮助
http://blog.sina.com.cn/s/blog_7865b0830101ach4.html

#5


你是不是说错了,MSSQL是支持中文全文索引的

#6


引用 5 楼 kxjrzyk的回复:
你是不是说错了,MSSQL是支持中文全文索引的

我是说mysql在5.7之前不支持中文全文索引。