適合初學者的理解Sphinx運行方式

#網上雖然有這麼一張圖,但是解釋很少,我也覺得只看這張圖很難深刻理解Sphinx,下面我通俗的介紹一下;

#首先有一個MySQL主庫,這個主庫的存儲引擎是InnoDB;

#服務器運行兩個MySQL從庫進程,假定端口號分別是3306和3406;

#創建主庫和從庫的目的是爲了讓數據庫一直處於工作狀態;

#端口號爲3306的進程包括MyISAM和Sphinx兩個存儲引擎,用於直接對接php&SQL查詢;

#端口號爲3306的進程包括兩類數據表,一個是MyISAM表,另一個是Sphinx表;

#這兩個表通過對應的ID做JOIN聯合查詢;

#關於Sphinx表,包括三個進程,分別是indexer、searchd和search。indexer用來創建全文索引,searchd用來啓動全文檢索服務,負責接受查詢,處理查詢和返回數據集,search訪問全文檢索服務,也就是發起查詢,之後獲取檢索結果。假定Sphinx守護進程(也就是Searchd守護進程),端口號爲3312;

#Sphinx守護進程包括兩個索引,一個是主索引,一個是增量索引;

#增量索引的優點是準實時性,它的缺點是增加查詢時的I/O操作,從而犧牲了效率;

#增量索引定期和端口號爲3406的服務器進程通信,獲取最新的數據變化;

#索引查找依賴於索引的建立,索引技術裏面的全文索引依賴於詞庫(也或者說是詞典),詞庫的核心是分詞技術,分詞技術主要包括二元法和詞庫法;

#詞庫的更新目前主要使用“正向最大匹配”+“逆向最大匹配”,統計學方法和自動維護技術(百科);

#要理解這個模型的關鍵在於,主庫不負責接受查詢,但是卻接受php的更新操作,php一方面連接數據庫作更新操作,一方面與sphinx聯合作索引高效搜索,而sphinx索引的建立又依賴於數據庫;​

http://sphinxsearch.com/ 斯芬克斯下載地址

簡單來說 sphinx就是一個搜索引擎 用來頂替 mysql 或者他數據庫的全文檢索,速度提升很多倍,除此之外還有elasticsearch

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章