Sphinx是一個全文搜索引擎,遵循GPL version 2。可根據要求提供商業許可證(如嵌入式使用)。
從技術上講,Sphinx是一個獨立的軟件包提供快速和相關的全文搜索功能,客戶端應用程序。它是專門設計與SQL數據庫存儲數據的整合,并通過腳本語言方便地訪問。然而,Sphinx不依賴于也不需要任何特定的數據庫功能。
應用程序可以訪問Sphinx搜索守護進程(searchd)使用任何三個不同的訪問方法:
* 通過Sphinx自己實現的MySQL網絡協議(使用一個小的SQL子集稱為sphinxql,這是推薦的方式),
* 通過本地搜索API(sphinxapi)
* 通過一個可插拔的存儲引擎,MySQL服務器(sphinxse)。
官方原生sphinxapi支持PHP,Perl,Python,Ruby和java等編程語言。這個接口是非常輕量級的,所以將它移植到一個新的語言只需要幾個小時或幾天。Perl,C#,Haskell存在第三方API接口和插件,Ruby on Rails,可能還有其他的語言和框架。
從版本1.10-beta,Sphinx支持兩種不同的索引:“磁盤”和“實時”指標的后端,后端(RT)指數。磁盤索引支持在線全文索引重建,但在線更新只能在非文本數據(屬性)。除允許在線全文索引更新。以前的版本只支持磁盤索引。
數據可以用所謂的數據源加載到磁盤索引中。內置的來源獲取數據直接從MySQL,PostgreSQL,MSSQL,ODBC兼容的數據庫(Oracle,等)或在TSV或自定義的XML格式的管。添加新的數據源的驅動程序(如原生支持其他dbmses)的設計盡可能簡單。RT指標,作為1.10-beta,只能居住使用sphinxql。
至于名字,Sphinx是一個縮寫,這是正式解碼為SQL短語索引。
是的,我知道CMUSphinx項目。