多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > MySql > Sphinx+MySQL全文檢索架構(gòu)與安裝

Sphinx+MySQL全文檢索架構(gòu)與安裝

來源:程序員人生   發(fā)布時間:2013-10-28 12:37:08 閱讀次數(shù):3938次

前言:

本文闡述的是一款經(jīng)過生產(chǎn)環(huán)境檢驗的千萬級數(shù)據(jù)全文檢索(搜索引擎)架構(gòu)。本文只列出前幾章的內(nèi)容節(jié)選,不提供全文內(nèi)容。

在DELL PowerEdge 6850服務(wù)器(四顆64 位Inter Xeon MP 7110N處理器 / 8GB內(nèi)存)、RedHat AS4 Linux操作系統(tǒng)、MySQL 5.1.26、MyISAM存儲引擎、key_buffer=1024M環(huán)境下實測,單表1000萬條記錄的數(shù)據(jù)量(這張MySQL表擁有int、datetime、varchar、text等類型的10多個字段,只有主鍵,無其它索引),用主鍵(PRIMARY KEY)作為WHERE條件進(jìn)行SQL查詢,速度非常之快,只耗費0.01秒。

出自俄羅斯的開源全文搜索引擎軟件 Sphinx ,單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。Sphinx創(chuàng)建索引的速度為:創(chuàng)建100萬條記錄的索引只需3~4分鐘,創(chuàng)建1000萬條記錄的索引可以在50分鐘內(nèi)完成,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。

基于以上幾點,我設(shè)計出了這套搜索引擎架構(gòu)。在生產(chǎn)環(huán)境運行了一周,效果非常不錯。有時間我會專為配合Sphinx搜索引擎,開發(fā)一個邏輯簡單、速度快、占用內(nèi)存低、非表鎖的MySQL存儲引擎插件,用來代替MyISAM引擎,以解決MyISAM存儲引擎在頻繁更新操作時的鎖表延遲問題。另外,分布式搜索技術(shù)上已無任何問題。

一、搜索引擎架構(gòu)設(shè)計:

1、搜索引擎架構(gòu)圖:

2、搜索引擎架構(gòu)設(shè)計思路:

(1)、調(diào)用方式最簡化:

盡量方便前端Web工程師,只需要一條簡單的SQL語句“SELECT ... FROM myisam_table JOIN sphinx_table ON (sphinx_table.sphinx_id=myisam_table.id) WHERE query='...';”即可實現(xiàn)高效搜索。

(2)、創(chuàng)建索引、查詢速度快:

①、Sphinx Search 是由俄羅斯人Andrew Aksyonoff 開發(fā)的高性能全文搜索軟件包,在GPL與商業(yè)協(xié)議雙許可協(xié)議下發(fā)行。

Sphinx的特征:

  • Sphinx支持高速建立索引(可達(dá)10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
  • 高性能搜索(在2-4 GB的文本上搜索,平均0.1秒內(nèi)獲得結(jié)果)
  • 高擴展性(實測最高可對100GB的文本建立索引,單一索引可包含1億條記錄)
  • 支持分布式檢索
  • 支持基于短語和基于統(tǒng)計的復(fù)合結(jié)果排序機制
  • 支持任意數(shù)量的文件字段(數(shù)值屬性或全文檢索屬性)
  • 支持不同的搜索模式(“完全匹配”,“短語匹配”和“任一匹配”)
  • 支持作為Mysql的存儲引擎

②、通過國外《High Performance MySQL》專家組的測試可以看出,根據(jù)主鍵進(jìn)行查詢的類似“SELECT ... FROM ... WHERE id = ...”的SQL語句(其中id為PRIMARY KEY),每秒鐘能夠處理10000次以上的查詢,而普通的SELECT查詢每秒只能處理幾十次到幾百次:

③、Sphinx不負(fù)責(zé)文本字段的存儲。假設(shè)將數(shù)據(jù)庫的id、date、title、body字段,用sphinx建立搜索索引。根據(jù)關(guān)鍵字、時間、類別、范圍等信息查詢一下sphinx,sphinx只會將查詢結(jié)果的ID號等非文本信息告訴我們。要顯示title、body等信息,還需要根據(jù)此ID號去查詢MySQL數(shù)據(jù)庫,或者從Memcachedb等其他的存儲中取得。安裝SphinxSE作為MySQL的存儲引擎,將MySQL與Sphinx結(jié)合起來,是一種便捷的方法。

創(chuàng)建一張Sphinx類型表,將MyISAM表的主鍵ID和Sphinx表的ID作一個JOIN聯(lián)合查詢。這樣,對于MyISAM表來所,只相當(dāng)于一個WHERE id=...的主鍵查詢,WHERE后的條件都交給Sphinx去處理,可以充分發(fā)揮兩者的優(yōu)勢,實現(xiàn)高速搜索查詢。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲欧美专区精品伊人久久 | 亚洲不卡视频 | 偷自拍第一页 | 亚洲精品美女久久777777 | 亚洲永久精品免费www52zcm男男 | 欧美成人午夜片一一在线观看 | 亚洲嫩草影院久久精品 | 亚洲欧美色视频 | 日本高清无卡码一区二区久久 | 亚洲成人黄色在线观看 | 日本大胆欧美艺术337p | 17videosex性欧美| 亚洲精品伊人 | 中文字幕亚洲天堂 | 日本高清2019免费视频 | 日本黄色大片视频 | 秋霞免费手机理论视频在线观看 | 色午夜视频 | 91伊人久久大香线蕉 | 国产福利精品在线观看 | 久久受www免费人成看片 | 国产精品国产三级国产普通话对白 | 欧美人与黑人交 | 在线观看亚洲一区 | 亚洲美女色 | 爱综合 | h网站在线| 亚洲国产欧美日韩精品一区二区三区 | 国内视频一区二区 | 日本欧美亚洲 | 成人欧美一区二区三区在线 | 欧美办公室系列激情videos | 亚洲欧美日韩国产综合 | 亚洲精品h | 中文国产成人精品久久水 | 亚洲精品国产第一区二区多人 | 91免费福利 | 国产一级爱片在线播放 | 欧美高清一级 | 欧美高清在线不卡免费观看 | 中文字幕不卡一区 二区三区 |