Sphinx 斯芬克司

2022-03-24 17:56:19 字數 977 閱讀 2525

sphinx定義:

是乙個基於sql的全文檢索引擎,可以結合mysql,postgresql做全文搜尋,它可以提供比資料庫本身更專業的搜尋功能,使得應用程式更容易實現專業化的全文檢索。

同時為mysql也設計了乙個儲存引擎外掛程式。

sphinx優點:

單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。

sphinx建立索引的速度為:建立100萬條記錄的索引只需 3~4分鐘,建立1000萬條記錄的索引可以在50分鐘內完成,

而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。

sphinx的主要特性包括:

1、高速索引 (在**cpu上,近10 mb/秒);

2、高速搜尋 (2-4g的文字量中平均查詢速度不到0.1秒);

3、高可用性 (單cpu上最大可支援100 gb的文字,100m文件)

4、支援分布式搜尋

5、提供從mysql內部的外掛程式式儲存引擎上搜尋 支援布林,短語, 和近義詞查詢

6、持每個文件多個全文檢索域(預設最大32個); 支援每個文件多屬性; 支援斷詞; 支援單位元組編碼與utf-8編碼

sphinx適用場景:

1、在資料量大的時候適合用它進行搜尋,他比myisam和innodb 都要快

能對多個源表的混合資料建立索引,不限於單個表上的字段。 能將來自多個索引的搜尋結果進行整合

2、高效地使用where子句和limit字句

當在多個where條件做select查詢時,索引選擇性較差或者根本沒有索引支援的字段,效能較差。sphinx可以對關鍵字做索引

因為sphinx是把資料儲存到ram中,所以sphinx不會做太多的i/o操作

3、優化group by查詢

在sphinx中的排序和分組都是用固定的記憶體,它的效率比類似資料集全部可以放在ram的mysql查詢要稍微高些。

Sphinx (Sphinx(斯芬克司))

sphinx是乙個基於sql的全文檢索引擎,可以結合mysql,postgresql做全文搜尋,它可以提供比資料庫本身更專業的搜尋功能,使得應用程式更容易實現專業化的全文檢索。sphinx特別為一些指令碼語言設計搜尋api介面,如php,python,perl,ruby等,同時為mysql也設計了乙...

Sphinx實時索引

1,首先建立乙個表用來儲存主索引和增量索引的id值 create table if not exists sph counter s id int 10 unsigned not null auto increment,p id int 11 not null,primary key s id 2,...

sphinx配置文件

sphinx的配置 source 源名稱1 index 索引名稱1 source 源名稱2 index 索引名稱2 indexer searchd type 資料庫型別 mysql 或sql sql user 資料庫使用者名稱 sql pass 資料庫密碼 sql db 資料庫名稱 sql port...