Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果
相关度的全文搜索功能。
Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL
数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS
的原生支持)
Sphinx的特性
- 高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);
- 高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);
- 可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档);
- 提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;
- 支持分布式搜索;
- 支持短语搜索
- 提供文档摘要生成
- 可作为MySQL的存储引擎提供搜索服务;
- 支持布尔、短语、词语相似度等多种检索模式;
- 文档支持多个全文检索字段(最大不超过32个);
- 文档支持多个额外的属性信息(例如:分组信息,时间戳等);
- 支持断词;
安装
Sphinx在mysql上的应用有两种方式:
①、采用API调用,如使用PHP、java等的API函数或方法查询。优点是可不必对mysql重新编译,服务端进程“低耦合”,且程序可灵活、方便的调用;
缺点是如已有搜索程序的条件下,需修改部分程序。推荐程序员使用(下面安装是这种)。
②、使用插件方式(sphinxSE)把sphinx编译成一个mysql插件并使用特定的sql语句进行检索。其特点是,在sql端方便组合,且能直接返回数据给客户端
不必二次查询(注),在程序上仅需要修改对应的sql,但这对使用框架开发的程序很不方便,比如使用了ORM。另外还需要对mysql进行重新编译,且需要mysql-5.1以上版本
支持插件存储。系统管理员可使用这种方式
#手册网址http://sphinxsearch.com/docs/current.html#compiling-source-linux如果要使用sphinxSE插件存储请使用mysql-5.1以上版本
mysql -V
我的SQL版本
mysql Ver 14.14 Distrib 5.6.30, for Linux (x86_64) using EditLine wrapper
编译软件:gcc gcc-c++ autoconf automake
Sphinx :Sphinx 2.3.2
#下载 Sphinx 包wget http://sphinxsearch.com/files/sphinx-2.3.2-beta.tar.gz
解压包
tar zvxf sphinx-2.3.2-beta.tar.gz
cd sphinx-2.3.2-beta
./configure --prefix=/usr/local/sphinx --with-mysql
You can now run 'make install' to build and install Sphinx binaries.
On a multi-core machine, try 'make -j4 install' to speed up the build.
Updates, articles, help forum, and commercial support, consulting, training,
and development services are available at http://sphinxsearch.com/
Thank you for choosing Sphinx!
make && make install
报错
cc1plus: error: unrecognized command line option "-std=c++11"
make[2]: * [sphinx.o] Error 1
make[2]: Leaving directory `/www/sphinx-2.3.2-beta/src'
make[1]: * [all] Error 2
make[1]: Leaving directory `/www/sphinx-2.3.2-beta/src'
make: * [all-recursive] Error 1
"-std=c++11"出现这个编译错误的原因在g++ gcc 版本不够高
gcc -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
#升级GCC
查看 www.jerryblog.cn/b_d@MNwm6f918eY6f918e5@ONDmAY6f918e5.html
#继续安装Sphinx
make &&make install
安装完成后,在 /usr/local/sphinx目录下会有4个目录
ls /usr/local/sphinx/
bin etc share var
配置sphinx的配置文件