As for the name, Sphinx is an acronym which is officially decoded as SQL Phrase Index. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU General Public License for more details.
API is very lightweight so porting it to a new language is known to take a few hours or days.Third party API ports and plugins exist for Perl, C#, Haskell, Ruby-on-Rails, and possibly other languages and frameworks.Starting from version 1.10-beta, Sphinx supports two different indexing backends: "disk" index backend, and "realtime" (RT) index backend.Sphinx is a full-text search engine, publicly distributed under GPL version 2. It was specially designed to integrate well with SQL databases storing the data, and to be easily accessed by scripting languages. Technically, Sphinx is a standalone software package provides fast and relevant full-text search functionality to client applications.
However, Sphinx does not depend on nor require any specific database to function.
Applications can access Sphinx search daemon (searchd) using any of the three different access methods: a) via Sphinx own implementation of My SQL network protocol (using a small SQL subset called Sphinx QL, this is recommended way), b) via native search API (Sphinx API) or c) via My SQL server with a pluggable storage engine (Sphinx SE).
Disk indexes support online full-text index rebuilds, but online updates can only be done on non-text (attribute) data.
RT indexes additionally allow for online full-text index updates. Data can be loaded into disk indexes using a so-called data source.
Built-in sources can fetch data directly from My SQL, Postgre SQL, MSSQL, ODBC compliant database (Oracle, etc) or a pipe in TSV or a custom XML format. to natively support other DBMSes) is designed to be as easy as possible.
RT indexes, as of 1.10-beta, can only be populated using Sphinx QL.