在我們php開發中如何使用sphinx技術?
答:對應MySQL資料庫中的字段,就是將字段中的中文資訊拆分成多個詞語,然後對這些詞語建立索引。以後查詢的時候,先去查詢這些索引文件,再傳回這些符合條件的記錄的主鍵id,再根據主鍵id查詢MySQL資料庫,回傳記錄。
什麼是sphinx? (百度百科)
注意:對於sphinx來說,單表千萬筆記錄,反應的時間都是毫秒等級的。
注意:預設sphinx只支援英文和俄文
官網:
http://sphinxsearch.com/
由於Sphinx只支援以上兩種語言,所以有第三方公司為sphinx開發了中分分詞包,叫做coreseek
官網:
http://www.coreseek.cn/
客戶案例:http://www.coreseek.cn/products/ft_powered/
注意兩點:
sphinx是一個全文搜尋引擎,只支援俄文和英文
由於上面的原因,有專門的公司為其開發了中文分詞包,叫做coresesk。
中國有一家做的比較好的公司(海量分詞)
http://www.hylanda.com/
故事:http://home.hylanda.com/show_5_19.html
實操
下載
2. 建立一個大數據的表格(歌詞表)
mysql > source d:/songs.sql
檔案目錄:
指令:
sphinx安裝-使用
安裝
千萬注意:sphinx的設定檔一定不能使用Windows的記事本開啟。 (BOM頭)
API介面檔:可以用php呼叫該介面去操作sphinx伺服器端的索引檔。
修改設定檔
索引文件
記憶體設定:
sphinxd配置:
建立索引
設定檔中index後面的名稱
建立索引後的目錄結構
3. 實際使用
a. 開啟sphinx的服務,可以使用幫助資訊查看如何使用
使用:
可以單獨的讀取設定檔運行
也可以安裝成Windows的一個系統服務來運行
啟動sphinx服務(讀取設定檔單次啟動)
定義為系統服務後(安裝)
使用
1. 具體使用(sphinx流程可以見下圖)
sphinx流程圖:
sphinx儲存引擎:透過下面的步驟發現,發現php程式在做查詢的時候,必須先根據sphinx伺服器回傳主鍵ID,然後根據主鍵ID去查詢MySQL資料庫,最後再回傳資料庫。
這個時候,可以這樣思考,將sphinx當作MySQL的一個儲存引擎使用,這個時候php程式就可以直接的去連接MySQL伺服器,MySQL伺服器去自身的sphinx儲存引擎裡面取得分詞後的資料。不需要連接一次sphinx伺服器了。這個儲存引擎叫做sphinxSE。
http://blog.csdn.net/uestc_huan/article/details/6395145
簡單使用
使用
以上就介紹了學習sphinx,包含了sphinx方面的內容,希望對PHP教程有興趣的朋友有所幫助。