什麼是全文檢索?
全文檢索是指以文檔的全部文本信息作為檢索對象的一種信息檢索技術。檢索的對象有可能是文章的標題,也有可能是文章的作者,也有可能是文章摘要或內容。
Sphinx 是什麼?
Sphinx 是一個基於SQL的全文檢索引擎,可以結合MySQL,PostgreSQL做全文搜索,它可以提供比數據庫本身更專業的搜索功能,使得應用程序更容易實 現專業化的全文檢索。Sphinx特別為一些腳本語言設計搜索API接口,如PHP,Python,Perl,Ruby等,同時為MySQL也設計了一個 存儲引擎插件。
Sphinx 單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。Sphinx創建索引的速度為:創建100萬條記錄的索引只需 3~4分鐘,創建1000萬條記錄的索引可以在50分鐘內完成,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。
下面我們來看一種比較常見的 php + mysql + sphinx 搜索引擎架構圖:
Sphinx 有哪些特性?
高速索引 (在新款CPU上,近10 MB/秒);
高速搜索 (2-4G的文本量中平均查詢速度不到0.1秒);
高可用性 (單CPU上最大可支持100 GB的文本,100M文檔);
提供良好的相關性排名
支持分布式搜索;
提供文檔摘要生成;
提供從MySQL內部的插件式存儲引擎上搜索
supports boolean, phrase, and word proximity queries;
支持每個文檔多個全文檢索域(默認最大32個);
支持每個文檔多屬性;
支持斷詞;
支持單字節編碼與UTF-8編碼;
supports English stemming, Russian stemming, and Soundex for morphology;
支持MySQ(MyISAM和InnoDB 表都支持);
支持PostgreSQL.
更為詳細教程請參考:php官方sphinx文檔