系统环境:centos
coreseek其实就是sphinx+中文分词,今天这里记录一下自己的过程,包括sphinx的安装、mmseg中文分词软件的安装、php的sphinx扩展的安装,mysql、php、apache或者nginx的安装这里没有记录。
第一步:安装一些基础库和工具,免得后面出现缺少库的情况出现。
yum -y install make gcc gcc++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
第二步:下载coreseek,并解压,依次执行以下命名
cd /usr/local/src wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz tar zxvf coreseek-4.1-beta.tar.gz
第三步:安装mmseg分词软件,依次执行以下命名
cd coreseek-4.1-beta/mmseg-3.2.14/ ./bootstrap ./configure --prefix=/usr/local/mmseg3 make && make install
可以用下面的命令测试分词软件是否安装成功
cd /usr/local/mmseg3/bin ./mmseg -d /usr/local/mmseg3/etc/ /usr/local/src/coreseek-4.1-beta/mmseg-3.2.14/src/t1.txt
第四步:安装sphinx,依次执行以下命名
cd /usr/local/src/coreseek-4.1-beta/csft-4.1/ sh buildconf.sh ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install
第五步:在mysql中准备测试表(blog库),并准备点数据
DROP TABLE IF EXISTS `news`; CREATE TABLE `news` ( `id` int(10) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `catid` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; insert into news(title,content,catid) values('我是谁啊,祖国','我是你河边上破旧的老水车,数百年来纺着疲惫的歌我是你额上熏黑的矿灯照 你在历史的隧洞里蜗行摸索我是干瘪的稻穗;是失修的路基',1); insert into news(title,content,catid) values('我城管来收税的','大风大浪我都见过,还会怕你们这些小虾米,都给我跪着,每人交5000元罚款,听见没有?',1);
第六步:让sphinx正常连接mysql,依次执行以下命名(配置)
cd /usr/local/coreseek/etc/ cp sphinx.conf.dist csft.conf vi csft.conf
修改以下信息,改成自己的
sql_host = localhost sql_user = root sql_pass = sql_db = blog sql_port = 3306
开启查询之前的执行语句和关闭查询缓存,找到好把前面的#去掉
sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF
找到
sql_query_info = SELECT * FROM docments WHERE id=$id
改为
sql_query_info = SELECT * FROM news WHERE id=$id
从表中读取记录的语句修改成这样的
sql_query = SELECT id,title,content FROM news
找到
charset_type = sbcs
改为
charset_type = zh_cn.utf-8
添加词典的目录
charset_dictpath = /usr/local/mmseg3/etc/
将配置保存,接下来测试sphinx是否安装成功
####
测试创建索引
/usr/local/coreseek/bin/indexer --all
####
测试检索功能
/usr/local/coreseek/bin/search 祖国
第七步:安装php的sphinx扩展
php扩展官网:http://pecl.php.net/package/sphinx
安装sphinx扩展前需要先安装libsphinxclient,以此执行下面命令
cd /usr/local/src/coreseek-4.1-beta/testpack/api/libsphinxclient/ ./configure make && make install
安装php-sphinx扩展
cd /usr/local/src/ wget http://pecl.php.net/get/sphinx-1.3.2.tgz tar zxvf sphinx-1.3.2.tgz cd sphinx-1.3.2 phpize ./configure --with-php-config=/usr/bin/php-config --with-sphinx make && make install
将php-sphinx扩展加到php.ini
vi /etc/php.ini
在里面添加上如下内容,保存退出,重启web服务器即可
extension = sphinx.so
第八步:启动sphinx服务,在php中使用搜索
/usr/local/coreseek/bin/searchd
附PHP搜索测试代码
<?php $word = $_GET['word']; $sphinx = new SphinxClient(); $sphinx->setServer("localhost", 9312); $sphinx->setMatchMode(SPH_MATCH_ANY); $result = $sphinx->query ($word,'*'); print_r($result);