简介
背景:
1.数据量大,内容审核现有搜索简历索引慢;人员流动,现有搜索难于维护
2.前端调用复杂;使用全表扫描,搜索速度慢;对结果的没有排序;难于最快找到最精确的数据
建议优化:
1.高速的索引建立
2.避免对数据库做like操作,减少压力
3.对搜索的结果进行权重排序
4.前端开发方便调用
5.最好门槛低,易于掌握且后期维护
安装
安装
1.安装lamp环境
2.下载所需文件
注意:如果你使用Ubuntu 10.10(sphinxsearch),你可以使用apt-get install直接安装,可以跳过此步(不过不支持中文分词)
Coreseek Fulltext Server(源代码) : http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz
Coreseek Mmseg(源代码) : http://www.coreseek.cn/uploads/csft/3.1/Source/mmseg-3.1.tar.gz
3.必须安装工具
sudo apt-get install autoconf automake autotools-dev cpp curl gawk gcc lftp libc6-dev linux-libc-dev make libpcre3-dev libpcrecpp0 g++ libtool libncurses5-dev
sudo aptitude install libmysql++-dev libmysqlclient15-dev checkinstall
4.安装mmseg
sudo su
tar zxvf mmseg-3.1.tar.gz
mkdir /usr/local/mmseg
cd mmseg-3.1
./configure --prefix=/usr/local/mmseg
make
make install
5.安装sphinx
注意:如果你使用Ubuntu 10.10(sphinxsearch),你可以使用sudo apt-get install sphinxsearch快速安装(不过不支持中文分词)
如果不是则采用以下命令:
(下面如果是手动安装的mysql注意把--with-mysql修改成自己对应的mysql安装目录)
tar zxvf csft-3.1.tar.gz
mkdir /usr/local/coreseek
cd csft-3.1
./configure --prefix=/usr/local/coreseek --with-mysql --with-mmseg-includes=/usr/local/mmseg/include/mmseg --with-mmseg-libs=/usr/local/mmseg/lib/
make clean
make
make install
6.测试
安装完成,下面是测试.
注意:如果你使用Ubuntu 10.10(sphinxsearch),下面配置文件sphinx.conf.dist应该在/etc/sphinxsearch目录下
cd /usr/local/coreseek/etc
sudo cp sphinx.conf.dist sphinx.conf
sudo vim sphinx.conf(修改示例如下)
mysql -uroot test < /usr/local/coreseek/etc/example.sql(l创建示例数据表,当然你也可以用phpmyadmin导入)
注意:如果你使用Ubuntu 10.10(sphinxsearch),下面你可以直接采用命令sudo indexer --all和sudo search test
sudo /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all
sudo /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/sphinx.conf test
sudo /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf(启动searchd进程以便sphinxapi调用)
注意:如果你使用Ubuntu 10.10(sphinxsearch),下面的参数应该修改为如下所示:
path = /var/lib/sphinxsearch/data/idxbook1
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
pid_file = /var/run/searchd.pid
还有将不支持charset_dictpath及charset_table参数,即不支持中文分词
注意:如果你使用Ubuntu 10.10(sphinxsearch),下面的参数应该修改为如下所示:
path = /var/lib/sphinxsearch/data/idxbook1
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
pid_file = /var/run/searchd.pid
还有将不支持charset_dictpath及charset_table参数,即不支持中文分词