php+sphinx+mysql打造千万级数据全文搜索 (苹果OS X 10系列安装)

Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。
Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。
Sphinx的特性如下:
a)  高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);
b)  高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);
c)  可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可处理100 M 文档);
d)  提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;
e)  支持分布式搜索;
f)  支持短语搜索
g)  提供文档摘要生成
h)  可作为MySQL的存储引擎提供搜索服务;
i)  支持布尔、短语、词语相似度等多种检索模式;
j)  文档支持多个全文检索字段(最大不超过32个);
k)  文档支持多个额外的属性信息(例如:分组信息,时间戳等);
l)  支持断词;
虽然mysql的MYISAM提供全文索引,但是性能却不敢让人恭维


开始搭建

系统环境:mac os x系统+php5.6+apache+MySQL

1、安装Sphinx

wget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
tar zxvf sphinx-2.2.11-release.tar.gz  
cd sphinx-2.0.7-release  
./configure --prefix=/usr/local/sphinx  --with-mysql --with-libexpat --enable-id64  
sudo make 
sudo make install 

2、安装libsphinxclient,PHP扩展用到

cd api/libsphinxclient  
#注意这里的.configure必须加CXXCPP="gcc -E",不然会报错
#configure: error: C++ preprocessor "/lib/cpp" fails sanity check
#我在百度折腾大半天没找到答案,然后去国外论坛找到的,这我不能不再次说百度是个废物 
CXXCPP="gcc -E" ./configure --prefix=/usr/local/sphinx/libsphinxclient  
sudo make
sudo make install

3安装Sphinx的PHP扩展:我的是5.6需装sphinx-1.3.3.tgz,如果是php5.4以下可sphinx-1.3.0.tgz

wget -c http://pecl.php.net/get/sphinx-1.3.3.tgz  
tar zxvf sphinx-1.3.3.tgz  
cd sphinx-1.3.3  
sudo phpize  
./configure --with-sphinx=/usr/local/sphinx/libsphinxclient/ --with-php-config=/usr/bin/php-config  
sudo make 
sudo make install  
#向配置文件添加扩展so
sudo echo "[Sphinx]" >> /etc/php.ini  
sudo echo "extension = sphinx.so" >> /etc/php.ini  
#重启apache  
sudo apachectl restart 


在make install生成php扩展的时候,由于os sip机制阻止了向/usr/lib/php/extension目录拷贝so文件,我们按照以下方法就可以解决问题

  • 重启系统
  • 按住Command + R   (重新亮屏之后就开始按,象征地按几秒再松开,出现苹果标志,ok)
  • 菜单“实用工具” ==>> “终端” ==>> 输入csrutil disable;执行后会输出:Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
  • 再次重启系统

禁止掉SIP后,就可以顺利的安装了,当然装完了以后你可以重新打开SIP,方法同上,只是命令是csrutil enable

关于sphinx的应用请看http://blog.csdn.net/nuli888/article/details/51892776的文章。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

turbocc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值