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的配置文件