解决核心思路是给mysql打中文全文搜索补丁包。
============================
修正phpbb3中文搜索
安装步骤:
1 安装 scws-1.0.1
代码: 全选
wget http://www.ftphp.com/scws/down/scws-1.0.1.tar.bz2
tar xvjf scws-1.0.1.tar.bz2
cd scws-1.0.1
./configure --prefix=/usr/local/scws ; make ; sudo make install
cd /usr/local/scws/etc
sudo wget http://www.ftphp.com/scws/down/scws-dict-chs-gbk.tar.bz2
sudo wget http://www.ftphp.com/scws/down/scws-dict-chs-utf8.tar.bz2
sudo tar xvjf scws-dict-chs-gbk.tar.bz2
sudo tar xvjf scws-dict-chs-utf8.tar.bz2
sudo vim /etc/ld.so.conf.d/scws.conf 写入 /usr/local/scws/lib 保存关闭。
代码: 全选
cd ~
wget http://ftp.debian.org/debian/pool/main/m/mysql-dfsg-5.1/mysql-dfsg-5.1_5.1.30-2.diff.gz
wget http://ftp.debian.org/debian/pool/main/m/mysql-dfsg-5.1/mysql-dfsg-5.1_5.1.30-2.dsc
wget http://ftp.debian.org/debian/pool/main/m/mysql-dfsg-5.1/mysql-dfsg-5.1_5.1.30.orig.tar.gz
dpkg-source -x mysql-dfsg-5.1_5.1.30-2.dsc
代码: 全选
cd mysql-dfsg-5.1-5.1.30
wget http://www.hightman.cn/down/myft-5.1.30-081231.tgz
tar xvzf myft-5.1.30-081231.tgz
patch -p0 < myft_scws_udf_5.1.30.patch
代码: 全选
dpkg-buildpackage -rfakeroot
cd ..
#如果有安装mysql5.0需要先删除mysql5.0
sudo dpkg -i *.deb
代码: 全选
cd mysql-dfsg-5.1-5.1.30/plugin/scws
./configure --prefix=/usr --with-scws=/usr/local/scws
make ; sudo make install
代码: 全选
在 [mysqld] 字段里加入 ft_min_word_len = 2
代码: 全选
sudo /etc/init.d/mysql restart
代码: 全选
mysql>INSTALL PLUGIN scws_parser SONAME 'libftscws.so';
代码: 全选
将 ADD FULLTEXT (...) 后面加上 WITH PARSER scws_parser
10 到phpbb3的后台删除 fulltext_mysql的索引,再重新创建下。
这种是目前最佳处理phpbb3中文搜索的办法,到此大功告成。
修改完毕后,表空间尺寸大小:
代码: 全选
# ls -l phpbb_posts*
-rwxr-xr-x 1 mysql mysql 9356 2009-01-12 09:12 phpbb_posts.frm
-rwxr-xr-x 1 mysql mysql 36309056 2009-01-12 11:49 phpbb_posts.MYD
-rwxr-xr-x 1 mysql mysql 42139648 2009-01-12 11:49 phpbb_posts.MYI
-rwxr-xr-x 1 mysql mysql 8694 2009-01-12 09:12 phpbb_posts_text.frm
-rwxr-xr-x 1 mysql mysql 326084632 2009-01-12 11:51 phpbb_posts_text.MYD
-rwxr-xr-x 1 mysql mysql 8432640 2009-01-12 11:51 phpbb_posts_text.MYI
============================
修正 MediaWiki 的全文中文搜索
mysql> alter table searchindex drop index si_title;
mysql> alter table searchindex drop index si_text;
mysql> alter table searchindex add fulltext(si_title) with Parser scws_parser;
mysql> alter table searchindex add fulltext(si_text) with Parser scws_parser;
ok,在mediawiki中搜索中文就没有问题了。