一般來說,Sphinx是一個獨立的搜索引擎,意圖為其他應用提供高速、低空間佔用、高結果相關度的全文搜素功能。 Sphinx可以非常容易的与SQL数据库和脚本语言集成。
当前系统内置MySQL和PostgreSQL数据库数据源的支持,也支持从标准输入读取待定格式的XML數據。通過修改源代碼,用戶可以自行增加新的數據源(其他類型的DBMS的原生支持)。
搜索API支持PHP、Python、Perl、Ruby和Java,並且也可以用作MySQL存儲引擎。搜索API非常簡單,可以在若干小時之內移植到新的語言上。
Sphinx是SQL Phrase Index 的缩写,但不幸的和CMU的Sphinx项目重名。
Coreseek 全文检索服务器2.0是在Sphinx基础上开发的全文检索软件,按照GPLv2协议发行。
Sphinx 的特性
- 高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);
- 高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);
- 可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档);
- 提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;
- 支持分布式搜索;
- 支持短语搜索;
- 提供文档摘要生成;
- 可作为MySQL的存储引擎提供搜索服务;
- 支持布尔、短语、词语相似度等多种检索模式;
- 文档支持多个全文检索字段(最大不超过32个);
- 文档支持多个额外的属性信息(例如:分组信息,时间戳等);
- 支持断词;
Sphinx 可以从官方网站http://www.sphinxsearch.com下载,支持中文分词的Sphinx可从http://www.coreseek.com/下载。
目前,Sphinx的发布包包括如下软件:
- indexer: 用于创建全文索引
- search: 命令行的测试程序,用于测试全文索引
- searchd: 守护进程,其他软件可以通过这个守护进程进行全文检索
- sphinxapi: searchd的客户端API库,用于Web脚本开发语言(PHP, Python, Perl, Ruby)