- 什么是sphinx,sphinx和coreseek有什么区别和作用。
- coreseek的安装和配置。
- coreseek的使用方式。
sphinx和coreseek
- ** sphinx: **
Sphinx是开源的搜索引擎,它支持英文的全文检索。 - ** coreseek: **
单独搭建Sphinx,已经可以使用全文索引了。但是往往我们要求的是中文索引,coreseek就是国人提供了一个可供企业使用的,基于Sphinx的中文全文检索引擎。也就是说Coreseek实际上的内核还是Sphinx。
coreseek安装流程和遇到问题的解决方法
- 第一步下载coreseek安装包,点击下载coreseek的3.2.14.tar.gz版本
- 下载完成后解压进入coreseek目录,会发现有两个目录csft-3.2.14和mmseg-3.2.14,这里简单说明下:Csft-3.2.14就相当玩sphinx安装目录,mmseg-3.2.14即为中文分词安装包,先安装中文分词库,请看代码:
Cd coreseek-3.2.14/ mmseg-3.2.14 ./configure --prefix=/usr/local/mmseg/
./configure出现错误:config.status: error: cannot find input file: src/Makefile.in
要先安装automake,再重新执行configure
yum -y install autoconf automake
aclocal
yum -y install libtool
aclocal
libtoolize –force
automake --add-missing
make
make install
- 安装中文分词mmseg完毕,安装coreseek。
cd ../ csft-3.2.14
./configure --prefix=/usr/local/coreseek --with-mysql=/usr/local/mysql --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
make
make install
```
但我的环境是使用yum直接安装的lnmp,不知道mysql的地址。需要先安装mysql-devel ,再安装csft的时候直接用-with-mysql 会自动搜索安装的mysql的文件。重新执行上面的代码,--with--mysql不用带参数,自动搜索。
4. 安装好coreseek和mmesg我们要给php加上sphinx模块,这样php就可以用到sphinx软件的功能,先下载php的sphinx模块包,代码如下
wget http://pecl.php.net/get/sphinx-1.1.0.tgz
tar zxvf sphinx-1.1.0.tgz
cd sphinx-1.1.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
安装扩张有可能遇到的错误:
一、configure: error: Cannot find libsphinxclient headers
解决方法:进入下载包的ctsf文件夹的api文件夹找到libsphinxclient文件夹,进入文件夹编译安装configure make && make isntall
二、/root/sphinx-1.1.0/sphinx.c:1888:43: warning: assignment from incompatible pointer type [enabled by default]
这是因为扩张的版本和以安装的php的版本之间代码的严格行造成的。
修改sphinx.c文件105行,添加默认值null
retval = std_hnd->read_property(object, member, type TSRMLS_CC, NULL);
配置扩展:在php.ini的下面加上:extension=”sphinx.so”
网友评论