Sphinx is an open source/ free software and fulltext search engine that has been designed for offering full-text search functionality to client applications. It works on Linux (Ubuntu, RedHat etc), MacOS, Windows, Solaris, FreeBSD, and some other systems. It is written in C++.
Sphinx lets you either search data stored in an SQL database, NoSQL storage, or just files quickly and easily — or index and search data on the fly.
Sphinx can be used as a stand-alone server like other DBMS's. It can be employed for communicating with other DBMS's using native protocols of MariaDB, MySQL and PostgreSQL, or by employing ODBC with ODBC-compliant DBMS's. Sphinx can also be employed as a storage engine ("SphinxSE") for MySQL and others.
It is possible to use SphinxAPI to connect an application to it if Sphinx is executed as a stand-alone server. The Sphinx search daemon can be accessed with the regular MySQL API and supports MySQL binary network protocol and. A subset of SQL (SphinxQL) is also supported by sphinx.
When employing MySQL or MariaDB, the Sphinx search may also query using a table that runs with SphinxSE engine. The various examples that use sphinx are Recruitment.aleph-graymatter.com, Craigslist.org, vBulletin.com, Tradebit.com, Boardreader.com, Mediawiki Extension.
The main features of sphinx are Incremental (soft real-time) and batch full-text indexing; non-text attributes support (strings, sets, scalars, JSON); Direct indexing of SQL databases; native support for MariaDB, MySQL, PostgreSQL; ODBC connectivity; distributed out of the box searching support ; XML documents indexing support; Integration via access APIs; full-text searching syntax; database-like result set processing; SQL-like syntax support via MySQL protocol; relevance ranking utilizing additional factors in addition to standard BM25.
With all its features and applications, there is no doubt that the Sphinx Search Engine promises to be a full text search engine which is both fast and flexible.