浅谈MYSQL的全文检索的应用
—— 适百千万数据量以上的站内搜索,平民级的解决方案51Testing软件测试网7F+E*goNM7[&T%`
51Testing软件测试网Q$['| tj'q环境:LINUX MYSQL4/5(5以上的版本直接可以在插件形式编译进MYSQL内)51Testing软件测试网C$a Y^-T7L
cr6W F0D|0 使用MYSQL的朋友一定有这样的经历,那就是在检索中文的时候往往力不从心。使用LIKE的效率实在不敢恭维,而且对搜索的结果也不是很满意的。 很希望有一个完美的解决方案。但是事实的真相是残酷的。这个完美的方案可能让你绞尽脑汁还是两手空空。51Testing软件测试网)f8sv3}L4F4P
6Z3Q*Dq*bf$]O0 今天我给大家带来的 MYSQL中文分词全文检索 可能会让您有一种相见恨晚的感觉。51Testing软件测试网9?8_2i3L Rm to;|
51Testing软件测试网JK(@[[&x'_o下面开始讲解:51Testing软件测试网~_+aptV~
/@ F&w/Xt;r1~0 在猪肉还是7块多的时候,我在CU里闲逛。突然看到一个大板(HIGHTMAN)的帖子。(我不记得地址了).51Testing软件测试网,lT2W8}:S(?
w7^]&]$R:|I0 大致内容就是修改MYSQL的源码。加入中文分词功能。原理依据的是一个强大的中文词典。(详细可进该大牛主页hightman.cn查看)51Testing软件测试网+MjUQao8zf_
51Testing软件测试网!uk9S6kW&F]I|所以我得声明一下。该功能的版权归HIGHTMAN大牛所有。本人不涉及版权问题。
.c ik4_e:d!O`{0YJww$t6k0 可喜的是该牛的MYSQL修改版是在GPL发放的。所在大家不用担心(除非你想自己打磨)。51Testing软件测试网`!u!\.a(MHfp%^PPd
51Testing软件测试网t C!| h D lXh b好啰嗦啊,扯了大半天还没到正题。我也觉得我自己好啰嗦,黄金又涨价了,哎。牛奶都从46涨到了65一箱了。51Testing软件测试网*dD!v*r]
51Testing软件测试网 j@KN3pI"}----------------------OH YEAH SO HOT!----------------------------
?Zr};R0z G051Testing软件测试网~+[-g2yI!e开始:51Testing软件测试网%Xg)W'@1XW-}"f
!{W b aq1Y;r0 cd/ /home/apps51Testing软件测试网$Z d-d^kd1H/C]b7F
51Testing软件测试网uUgo5[E!]8Bwget http://www.hightman.cn/down/mysql-5.1.11-hi1.tgz51Testing软件测试网sP*qjTD9V
51Testing软件测试网(M5kCT bYh{tar zxf mysql-5.1.11-hi1.tgz
Z aQ!m3Rop$y#N)tI'H0[9k c*|+J"imB0 cd mysql-5.1.11-hi151Testing软件测试网P s_G l ^
:D4L`8Cr,M&\0 #开始编译,加入分词插件51Testing软件测试网7l!B2`*]%U2u~
'e6ffnZ}0 ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=all --with-plugins=fthightman
? Y;RGLN051Testing软件测试网\$^X:H^5@'\6mc qmake
{"`6em8Yae!k l0wZzb+H0 make install
xu] b;}f3m051Testing软件测试网/fo#ja/w&M8~ il#你如果嫌麻烦也可以 make && make install 该过程比较漫长(取决于机器性能了)
gm"t"V8L2C*Ad051Testing软件测试网 s;Tq8y"XJ NA"C v%j#复制my.cnf到系统启动项
6A"r&l:I.w*~3R?o-ck0-^]-dH|7[7}:K0 cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
Ha'NGz.s+NV09ccO)`W'cS3d D0 #增加mysql用户组
f1b4?+q d8W+p051Testing软件测试网,N;T;|5V`nq5wgroupadd mysql
5KB1H!uyF0"ctI$dKHm0 useradd -g mysql mysql
;V S\;Z r051Testing软件测试网 q'Q9l ~E1oGP5i?I#初始化51Testing软件测试网-JTF|oa(Ll
/m UF/Fa3G4sF X0 cd /usr/local/mysql
p7hR LwkUx(ih051Testing软件测试网1a7EK+L8PzQ#vbin/mysql_install_db --user=mysql |注:--user=mysql 初始化表并且规定用mysql用户
{.S@4_H0u051Testing软件测试网Q,c6JJM7l!K#设置给mysql和root用户设定访问权限 我们先进入mysql目录
7c?r f!ZAr:T0@7B$\!g6M&I0 cd /usr/local/mysql
7O(O/w^J051Testing软件测试网;A.R{oV/]ichown -R root /usr/local/mysql |注:设定root能访问/usr/local/mysq