武紅寬
【摘要】 隨著用戶的增多,酷友社區(qū)站內(nèi)的帖子數(shù)據(jù)量不斷增大。而現(xiàn)有的基于數(shù)據(jù)庫的搜索對服務(wù)器的負載越來越大,嚴(yán)重時,能導(dǎo)致整個服務(wù)器跌機。重新構(gòu)建酷友社區(qū)站內(nèi)全文搜索的需求越發(fā)緊迫,本文研究的是基于sphinx服務(wù)實現(xiàn)酷友社區(qū)站內(nèi)搜索,這樣一來,用戶也可以通過站內(nèi)搜索引擎,更加快捷、準(zhǔn)確地找到自己需要的內(nèi)容。
【關(guān)鍵詞】 sphinx 搜索 數(shù)據(jù)庫
一、引言
對于酷友社區(qū)網(wǎng)站來說,隨著信息量的逐步提升,內(nèi)容越來越豐富,單純的通過展示和網(wǎng)站架構(gòu)已經(jīng)無法滿足用戶查找內(nèi)容的需要。另外,原有的基于MySQL數(shù)據(jù)庫搜索。不僅搜索速度慢,而且會對酷友社區(qū)服務(wù)器的性能產(chǎn)生影響。這里,提出了一種基于sphinx服務(wù)實現(xiàn)酷友社區(qū)站內(nèi)搜索。
二、總體設(shè)計
2.1總體框架設(shè)計
整體框架可以分為用戶請求模塊、PHP處理模塊以及數(shù)據(jù)存儲模塊。這里我們的主要工作是對PHP處理模塊進行sphinx服務(wù)的搭建。
2.2數(shù)據(jù)源的配置
數(shù)據(jù)源提供某種所需要數(shù)據(jù)的器件或原始媒體。在數(shù)據(jù)源中存儲了所有建立數(shù)據(jù)庫連接的信息。這里我們使用的MySQL數(shù)據(jù)庫做為酷友社區(qū)的數(shù)據(jù)庫,所以sphinx的數(shù)據(jù)源是從MySQL數(shù)據(jù)庫的表里獲取的。以下是對帖子表數(shù)據(jù)源的配置:
source threads
type = mysql #數(shù)據(jù)庫類型
sql_host = 127.0.0.1 #數(shù)據(jù)庫ip地址
sql_user = root #數(shù)據(jù)庫登陸用戶名
sql_pass = 123456 #數(shù)據(jù)庫登陸密碼
sql_db = coolpad_bbs_06_10 #數(shù)據(jù)庫名
2.3索引的配置
索引與書籍中的目錄結(jié)構(gòu)有些類似,在一本書中,利用目錄可以快速查找所需信息,而無須閱讀整本書。sphinx中的索引數(shù)據(jù)是結(jié)構(gòu)化文檔的集合,每個文檔是字段的集合。一行對應(yīng)一個文檔,每一列對應(yīng)一個字段。索引還可以包含屬性用于過濾、排序、分組,這些屬性不會被全文檢索,僅僅是被存儲在索引中。以下是對帖子表索引的配置:
index threads
{
source = threads #資源名稱
path = D:/coreseek-3.2.14-win32/var/data/threads #路徑
charset_type = zh_cn.utf-8 #編碼格式
}
2.4 sphinx服務(wù)的開啟
進入DOS命令行下,執(zhí)行以下命令:
cd D:\coreseek-3.2.14-win32 //進入coreseek-3.2.14-win32文件夾
SET PATH=%CD%\bin;%PATH% //設(shè)置環(huán)境變量
bin\indexer -c etc\csft_mysql.conf --all //建立所有索引
bin\searchd -c etc\csft_mysql.conf //開啟sphinx服務(wù)
結(jié)果及分析
在DOS命令下,輸入命令:bin\indexer -c etc\csft_mysql. conf,出現(xiàn)了“using config file ‘etc\csft_mysql.conf…”,可以看出,sphinx服務(wù)可以成功啟動。
在DOS命令下,輸入命令:bin\search -c etc\csft_mysql. conf –a coolpad
輸入命令后,出現(xiàn)“coolpad”相關(guān)帖子數(shù)據(jù)的信息,測試結(jié)果如下圖所示,一共搜索到212個“coolpad”主題相關(guān)的帖子信息。此結(jié)果證明了站內(nèi)搜索可用。
三、結(jié)論
本文給出了一種基于sphinx服務(wù)實現(xiàn)酷友社區(qū)站內(nèi)搜索設(shè)計與實現(xiàn)方法,通過搭建sphinx服務(wù)來實現(xiàn)酷友社區(qū)的站內(nèi)搜索,從而實現(xiàn)快速準(zhǔn)確的站內(nèi)搜索服務(wù)。
參 考 文 獻
[1]W.Jason Gilmore.PHP與MySQL程序設(shè)計(第4版)[M].朱濤江.北京:人民郵電出版社,2011.
[2]Luke Welling,Laura Thomson. PHP和MySQL Web開發(fā)[M].武欣.北京:機械工業(yè)出版社,2009