Sphinx
Sphinx is a standalone full-text search engine whose goal is to provide fast and relevant full-text search functionality. It is built to integrate with SQL databases, and to provide easy access via scripting languages, but it can be used directly without an SQL database.
The Sphinx search daemon can be accessed via:
- SphinxQL, Sphinx's implementation of the MySQL network protocol that uses a subset of SQL.
- SphinxAPI, Sphinx's native search API, provided in PHP, Perl, Python, Ruby, and Java.
- Through MySQL server using SphinxSE, a storage engine component.
Sphinx provides two indexing backends:
- Disk: supports online full-text index rebuilds, but online updates can only be done to attribute data.
- Realtime: also allow online full-text updates.
Sphinx can use the following types of data sources to load disk indexes:
- MySQL
- PostgreSQL
- MSSQL
- ODBC databases
- TSV/XML files
- Can also work with custom source drivers.
The name of Sphinx refers to SQL Phrase Index.