热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu上Coreseek+PHP的安装

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

Coreseek是一个基于sphinx引擎,支持与mmseg中文分词模块合作完成中文的全文搜索引擎。相对sql这类操作,Coreseek负载可谓是微不足道。当然类似的索引服务器还有给予Java的solr等。我选择coreseek的主要原因之一是他可以通过配置后可以与现有的mysql客户端兼容,并可以直接嵌入到mysql中成为mysql的引擎之一。

首先,下载安装包,我选择的是最新的stable版, 不过不客气的说,即便是coreseek的stable版本,不论是从稳定性、兼容性还是灵活性上都不能算是完善,至少无法跟apache这类经典应用相提并论。

安装Ubuntu开发包:
apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev

解压:
tar xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14

应该看到有mmseg csft testpack 至少3个目录

安装mmseg中文分词模块

cd mmseg-3.2.14
./bootstrap
./configure –prefix=/usr/local/mmseg3 #不喜欢这个官方目录配置,更换目录后配置无法生效郁闷了很久,稍后再说
make
make install
cd ../testpack
/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml #测试结果,请确保终端可以看到utf8中文,应该可以看到分词后的结果

安装Python包

虽然coreseek支持直接的mysql连接,但考虑到分词、分表的情况,这种设置不是很灵活。我的方案是通过python脚本的预处理,将mysql的数据整理后传输到coreseek建立索引。这样还有一个优势就是“万能数据源”——memcache、redis这类几乎不指望coreseek官方支持的妖异存储方案,只要有python的api,均可以索引。

官方的安装手册中介绍的python接口是基于ActivePython 替代系统python语言的方式进行的。ActivePython属于第三方封包,远没有系统自带python来的方便,刚开始用系统python测试了数次,均不成功,后来根据出错信息,找到了原因。

apt-get install python-dev python-sqlite python-mysqldb python-memcache

安装coreseek

cd ../csft-3.2.14
./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 –with-python
make
make install

cd ../testpack
/usr/local/coreseek/bin/indexer -c etc/csft.conf –all
/usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索 #没什么问题了

安装libsphinxclient

coreseek官方教程中建议php使用直接include一个php文件进行操作,事实上php有独立的sphinx模块可以直接操作coreseek (coreseek就是sphinx!)已经进入了php的官方函数库,而且效率的提升不是一点点!但php模块依赖于libsphinxclient包。

cd ../csft-3.2.14/api/libsphinxclient
./configure
make
make install
ldconfig

安装php-sphinx支持

apt-get install php5-dev
wget http://pecl.php.net/get/sphinx-1.1.0.tgz
tar vzxf  sphinx-1.1.0.tgz
cd  sphinx-1.1.0
phpize
./configure
make
make install

确信成功后修改php.ini,还是遵从ubuntu的配置规则
echo “extension=sphinx.so”  > /etc/php5/conf.d/sphinx.ini

如果使用apache或者fast-cgi的话,请重起。察看phpinfo() 如下则安装成功。

sphinx

sphinx support enabled
Version 1.1.0
Revision $Revision: 303462 $


推荐阅读
author-avatar
龙龙玖号_367
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有