sphinx社區(qū)全文搜索平臺配置手冊

sphinx社區(qū)全文搜索平臺配置手冊

ID:8811713

大?。?11.08 KB

頁數(shù):20頁

時(shí)間:2018-04-08

sphinx社區(qū)全文搜索平臺配置手冊_第1頁
sphinx社區(qū)全文搜索平臺配置手冊_第2頁
sphinx社區(qū)全文搜索平臺配置手冊_第3頁
sphinx社區(qū)全文搜索平臺配置手冊_第4頁
sphinx社區(qū)全文搜索平臺配置手冊_第5頁
資源描述:

《sphinx社區(qū)全文搜索平臺配置手冊》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、千萬級Discuz!數(shù)據(jù)全文檢索方案(Sphinx)前言:康盛創(chuàng)想的Discuz!從創(chuàng)立之初即以提高產(chǎn)品效率為突破口,隨著編譯模板,語法生成內(nèi)核,數(shù)據(jù)緩存和自動(dòng)更新機(jī)制等獨(dú)創(chuàng)或獨(dú)有技術(shù)的應(yīng)用,和堅(jiān)固的數(shù)據(jù)結(jié)構(gòu)及最少化數(shù)據(jù)庫查詢設(shè)計(jì),使得Discuz!可以在極為繁忙的服務(wù)器環(huán)境下快速高效穩(wěn)定運(yùn)行。由于Discuz!產(chǎn)品依賴MySQL數(shù)據(jù)庫性能,在全文檢索方面如果僅僅依靠MySQL的LIKE%關(guān)鍵詞%語句無法取得理想的成績。本文闡述經(jīng)過Discuz!生產(chǎn)環(huán)境考驗(yàn)的構(gòu)建在Sphinx基礎(chǔ)上的千萬級Discuz!數(shù)據(jù)全文檢索解決方案。出自俄羅斯的開源全文搜索引擎軟

2、件Sphinx在單一索引達(dá)到4千萬條記錄情況下的查詢速度仍為0.x秒甚至0.0x秒級別。Sphinx創(chuàng)建索引的速度約五分鐘處理百萬條記錄,對于每分鐘的增量索引重建只需要幾十秒,每日的增量索引合并到主索引也只需一分鐘左右。此構(gòu)架基礎(chǔ)上的Discuz!高負(fù)載站點(diǎn),已成功解決搜索速度慢、經(jīng)常鎖表、無法分布式搜索等問題。千萬級Discuz!數(shù)據(jù)全文檢索方案(Sphinx)適用于繁忙的站點(diǎn)并且論壇訪問者有大量的搜索需求,本方案主要解決搜索緩慢問題。本文環(huán)境以CentOS5為基準(zhǔn)。初始化一次全部索引,按系統(tǒng)計(jì)劃任務(wù)crontab定時(shí)方式,每5分鐘重建一次增量索引(增量

3、索引不與主索引合并),每日凌晨3:30建立一次昨日比較的增量索引(合并到主索引中)。主索引建立在磁盤目錄/data/sphdata,增量索引建立在內(nèi)存/dev/shm/中避免大量的I/O操作,由于帖子編輯限制,全部索引每兩個(gè)月重建一次。目錄千萬級Discuz!數(shù)據(jù)全文檢索方案(Sphinx)1Sphinx快速介紹2一、Sphinx全文檢索方案構(gòu)架圖3二、Sphinx中文分詞4三、Sphinx安裝步驟41.安裝、升級所需的程序庫42.創(chuàng)建安裝文件夾并下載源代碼43.安裝MMseg中文分詞44.安裝CSFT(Sphinx的CoreSeek修改版)55.編譯Sp

4、hinx過程可能出現(xiàn)的錯(cuò)誤5a)無法找到mysql路徑5b)無法找到libiconv5c)無法找到libmysqlclient.so.155d)php5.2.11版本的apiBUG5e)生成索引時(shí)容易發(fā)生磁盤空間不足寫入失敗的錯(cuò)誤56.安裝為php擴(kuò)展(可選)67.安裝SphinxSE存儲(chǔ)引擎(可選)6四、Sphinx配置61.mmseg中文分詞詞庫6a)詞典格式6b)詞庫生成方法720/202.創(chuàng)建sphinx數(shù)據(jù)目錄結(jié)構(gòu)73.創(chuàng)建sphinx.conf配置文件74.mmseg.ini分詞配置文件145.建立Sphinx增量索引數(shù)據(jù)表146.書寫常用的s

5、phinx控制命令到sh文件147.創(chuàng)建相應(yīng)的文件結(jié)構(gòu),初始化Sphinx的全部索引178.啟動(dòng)sphinx179.設(shè)置計(jì)劃任務(wù)項(xiàng)1710.設(shè)置開機(jī)啟動(dòng)項(xiàng)17五、通過命令行測試搜索17六、通過phpapi調(diào)用Sphinx搜索18七、通過MySQL的SphinxSE存儲(chǔ)引擎調(diào)用Sphinx搜索(可選)19八、Sphinx數(shù)據(jù)占用量統(tǒng)計(jì)19Sphinx快速介紹Sphinx是獨(dú)立的搜索服務(wù)端,不依賴MySQL,當(dāng)Sphinx和MySQL結(jié)合部署時(shí),Sphinx的數(shù)據(jù)來源為MySQL。服務(wù)器安裝Sphinx,由sphinx.conf配置文件指定Sphinx的數(shù)據(jù)源

6、,如何讀取MySQL的數(shù)據(jù)內(nèi)容,設(shè)置Sphinx對MySQL數(shù)據(jù)庫的哪個(gè)表哪些字段建立索引,索引的返回?cái)?shù)據(jù)必須是數(shù)值型。?例如一個(gè)配置段設(shè)置Sphinx對cdb_threads表的subject和author字段建立索引,搜索結(jié)果可以返回tid和uid。另一個(gè)配置段設(shè)置Sphinx對cdb_posts表的subject和message字段索引,搜索結(jié)果返回tid和pid。Sphinx建立的索引只是查詢MySQL數(shù)據(jù)庫獲取數(shù)據(jù)內(nèi)容,將索引存放在Sphinx的數(shù)據(jù)文件和內(nèi)存中,一般不對MySQL數(shù)據(jù)庫進(jìn)行修改操作。?因?yàn)镾phinx獨(dú)立運(yùn)行,使用SELECT*

7、FROMcdb_threadsWHEREsubjectLIKE'%關(guān)鍵詞%'LIMIT0,10;類似的SQL語句將無法利用Sphinx搜索,即使服務(wù)器端已經(jīng)部署Sphinx也不會(huì)對該查詢語句有任何優(yōu)化作用。?正確使用Sphinx搜索數(shù)據(jù)的操作方式主要有三種:1、命令行的search工具:/usr/local/webserver/sphinx/bin/search–ithreadstest2、php的api接口查詢:原理是直接用fsockopen連接端口,傳遞數(shù)據(jù)取得返回結(jié)果。Sphinx官方已經(jīng)提供php的api接口,可以includeapi查詢(本方案以

8、該查詢方法為主),也可以將其源代碼編譯成php擴(kuò)展而無需inclu

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。