Sphinx

Sphinx是一款开源全文搜索服务器,从性能、相关性(也称为搜索质量)和集成简单性的角度设计。(Sphinx is an open source full text search server, designed from the ground up with performance, relevance (aka search quality), and integration simplicity in mind.)

Github stars Tracking Chart

Sphinx是一款开源全文搜索服务器,从性能、相关性(也称为搜索质量)和集成简单性的角度设计。它是用C++编写的,适用于Linux(RedHat,Ubuntu等)、Windows、MacOS、Solaris、FreeBSD等,和其他一些系统。

Sphinx允许您批量索引和搜索存储在SQL数据库,NoSQL存储器中的数据,或只是文件快速轻松地 - 或者即时索引和搜索数据,与Sphinx一样,与数据库服务器一样。
各种文本处理功能使您可以根据您的特定应用需求对Sphinx进行微调,并且还可以使用许多相关功能来调整搜索质量。
通过SphinxAPI进行搜索与3行代码一样简单,通过SphinxQL查询更简单,搜索查询以良好的旧SQL表达。
Sphinx集群每天可以扩展到数百亿个文档和数亿个搜索查询,为Craigslist, Living Social, MetaCafeGroupon等顶级网站提供支持,欲查看已知用户的完整列表,请访问我们的Powered-by 页面 。
最后但并非最不重要的是,它是根据GPLv2许可的。
性能和可扩展性
索引性能。 Sphinx每个CPU内核每秒最多可以提取10-15 MB的文本,即每个服务器(专用的索引机器)为60+ MB /秒。

搜索性能。通过在具有2GB RAM的双核台式机上搜索我们用于日常开发和测试的1,000,000个文档,1.2 GB文本集合,以500多个查询/秒运行。

可扩展性。最大的已知Sphinx集群索引超过25亿个文档,并因此积累了超过9TB的数据。最著名的一个是Craigslist,每天提供3亿次搜索查询。

主要特征
  • 批量和实时全文索引。两个索引后端支持有效的脱机索引构建和增加的即时索引更新。
  • 非文本属性支持。任意数量的属性(产品ID,公司名称,价格等)可以存储在索引中,仅用于检索(以避免命中数据库)或用于高效的Sphinx侧搜索结果集后处理。
  • SQL数据库索引。 Sphinx可以直接访问和索引存储在MySQL中的数据(支持所有存储引擎),PostgreSQL、Oracle、Microsoft SQL Server、SQLite、Drizzle以及支持ODBC的任何其他数据。
  • 非SQL存储索引。数据也可以以称为XMLpipe的简单XML格式流式传输到批量索引器,或直接插入增量RT索引。
  • 轻松应用集成。Sphinx配有三种不同的API,SphinxAPI、SphinxSE和SphinxQL。 SphinxAPI是可用于Java、PHP、Python、Perl、C和其他语言的本地库。 SphinxSE是MySQL的可插拔存储引擎,可将巨大的结果集直接发送到MySQL服务器进行后期处理。 SphinxQL允许应用程序使用标准的MySQL客户端库和查询语法查询Sphinx。
  • 高级全文搜索语法。sphinx的查询引擎支持结合布尔运算符、短语、邻近度、严格顺序和仲裁匹配,字段和位置限制,精确关键字形式匹配,子字符串搜索等的任意复杂查询。
  • 丰富的数据库式查询功能。sphinx不限制您进行关键字搜索。在全文搜索结果集之上,您可以计算任意算术表达式,添加WHERE条件,执行ORDER BY,GROUP BY,使用MIN/MAX/AVG/SUM,聚合等。本质上,支持全面的SQL SELECT。
  • 更好的相关性排名。与许多其他引擎不同,sphinx不单靠只考虑关键词频率的30年间的统计排名,也不会限制你。默认情况下,sphinx进一步分析了关键词的邻近度,并将更接近的短语匹配排名,完美匹配排名在顶部。此外,排名是灵活的:您可以选择一些内置的相关功能,通过使用表达式来调整权重,或开发新的。
  • 灵活的文本处理。sphinx索引功能包括对SBCS和UTF-8编码的全面支持(意味着有效地支持所有世界语言);停用词消除和可选的命中位置移除(无缝索引);通过词形词和词干进行词法和同义词处理;例外和混合字符;还有很多。
  • 分布式搜索搜索可以分布在多台机器上,实现横向横向扩展和HA(高可用性)。

Overview

Name With Ownersphinxsearch/sphinx
Primary LanguageC++
Program languageCMake (Language Count: 16)
Platform
License:GNU General Public License v2.0
Release Count3
Last Release Name2.3.2-beta (Posted on )
First Release Name2.2.10-release (Posted on 2015-09-07 00:43:18)
Created At2015-06-06 19:15:17
Pushed At2023-12-19 19:32:27
Last Commit At2018-03-30 18:41:40
Stargazers Count1.8k
Watchers Count183
Fork Count381
Commits Count4.5k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count4
Pull Requests Open Count20
Pull Requests Close Count23
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Sphinx

This is the 2.x branch, not really supported or actively developed as of 2018.

Support for 2.x is still possible by request but at the moment we have zero customers running 2.x builds :)

Sphinx 3.0 is now available at http://sphinxsearch.com/downloads/current/ and it is the suggested and actively maintained release.

The sources for 3.0 will also be posted here when we decide to make those publicly available.

If you need source access to 3.0 right now (commercial/delayed FOSS mode), please contact via http://sphinxsearch.com/about/contact/ or email me directly at shodan (at) sphinxsearch (dot) com

To the top