1. 搜索引擎的分類
搜索引擎按其工作方式主要可分為三種:
分別是全文搜索引擎(Full Text Search Engine)
目錄索引類搜索引擎(Search Index/Directory)
元搜索引擎(Meta Search Engine)。
■ 全文搜索引擎
全文搜索引擎是名副其實的搜索引擎,國外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,國內著名的有百度(Baidu)。它們都是通過從互聯網上提取的各個網站的信息(以網頁文字為主)而建立的數據庫中,檢索與用戶查詢條件匹配的相關記錄,然后按一定的排列順序將結果返回給用戶,因此他們是真正的搜索引擎。
從搜索結果來源的角度,全文搜索引擎又可細分為兩種,一種是擁有自己的檢索程序(Indexer),俗稱“蜘蛛”(Spider)程序或“機器人”(Robot)程序,并自建網頁數據庫,搜索結果直接從自身的數據庫中調用,如上面提到的7家引擎;另一種則是租用其他引擎的數據庫,并按自定的格式排列搜索結果,如Lycos引擎。
在搜索引擎分類部分提到過全文搜索引擎從網站提取信息建立網頁數據庫的概念。搜索引擎的自動信息搜集功能分兩種。一種是定期搜索,即每隔一段時間(比如Google一般是28天), 蜘蛛搜索引擎搜索引擎主動派出“蜘蛛”程序,對一定IP地址范圍內的互聯網站進行檢索,一旦發現新的網站,它會自動提取網站的信息和網址加入自己的數據庫。另一種是提交網站搜索,即網站擁有者主動向搜索引擎提交網址,它在一定時間內(2天到數月不等)定向向你的網站派出“蜘蛛”程序,掃描你的網站并將有關信息存入數據庫,以備用戶查詢。由于近年來搜索引擎索引規則發生很大變化,主動提交網址并不保證你的網站能進入搜索引擎數據庫,目前最好的辦法是多獲得一些外部鏈接,讓搜索引擎有更多機會找到你并自動將你的網站收錄。
當用戶以關鍵詞查找信息時,搜索引擎會在數據庫中進行搜尋,如果找到與用戶要求內容相符的網站,便采用特殊的算法——通常根據網頁中關鍵詞的匹配程度、出現的位置、頻次、鏈接質量——計算出各網頁的相關度及排名等級,然后根據關聯度高低,按順序將這些網頁鏈接返回給用戶。這種引擎的特點是搜全率比較高。
■ 目錄索引
雖然有搜索功能,但嚴格意義上不能稱為真正的搜索引擎,只是按目錄分類的網站鏈接列表而已。(更簡單說就是網址導航網站)
用戶完全可以按照分類目錄找到所需要的信息,不依靠關鍵詞(Keywords)進行查詢。目錄索引中最具代表性的莫過于大名鼎鼎的Yahoo、新浪分類目錄搜索。
與全文搜索引擎相比,目錄索引有許多不同之處。
首先,搜索引擎屬于自動網站檢索,而目錄索引則完全依賴手工操作。用戶提交網站后,目錄編輯人員會親自瀏覽你的網站,然后根據一套自定的評判標準甚至編輯人員的主觀印象,決定是否接納你的網站。 目錄索引其次,搜索引擎收錄網站時,只要網站本身沒有違反有關的規則,一般都能登錄成功。而目錄索引對網站的要求則高得多,有時即使登錄多次也不一定成功。尤其象Yahoo這樣的超級索引,登錄更是困難。
此外,在登錄搜索引擎時,我們一般不用考慮網站的分類問題,而登錄目錄索引時則必須將網站放在一個最合適的目錄(Directory)。
最后,搜索引擎中各網站的有關信息都是從用戶網頁中自動提取的,所以用戶的角度看,我們擁有更多的自主權;而目錄索引則要求必須手工另外填寫網站信息,而且還有各種各樣的限制。更有甚者,如果工作人員認為你提交網站的目錄、網站信息不合適,他可以隨時對其進行調整,當然事先是不會和你商量的。
目錄索引,顧名思義就是將網站分門別類地存放在相應的目錄中,因此用戶在查詢信息時,可選擇關鍵詞搜索,也可按分類目錄逐層查找。如以關鍵詞搜索,返回的結果跟搜索引擎一樣,也是根據信息關聯程度排列網站,只不過其中人為因素要多一些。如果按分層目錄查找,某一目錄中網站的排名則是由標題字母的先后順序決定(也有例外)。
目前,搜索引擎與目錄索引有相互融合滲透的趨勢。原來一些純粹的全文搜索引擎現在也提供目錄搜索,如Google就借用Open Directory目錄提供分類查詢。而象 Yahoo! 這些老牌目錄索引則通過與Google等搜索引擎合作擴大搜索范圍(注)。在默認搜索模式下,一些目錄類搜索引擎首先返回的是自己目錄中匹配的網站,如中國的搜狐、新浪、網易等;而另外一些則默認的是網頁搜索,如Yahoo。這種引擎的特點是找的準確率比較高。
■ 元搜索引擎 (META Search Engine)
元搜索引擎在接受用戶查詢請求時,同時在其他多個引擎上進行搜索,并將結果返回給用戶。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索結果排列方面,有的直接按來源引擎排列搜索結果,如Dogpile,有的則按自定的規則將結果重新排列組合,如Vivisimo。
除上述三大類引擎外,還有以下幾種非主流形式:
垂直搜索引擎
垂直搜索引擎為2006年后逐步興起的一類搜索引擎。不同于通用的網頁搜索引擎,垂直搜索專注于特定的搜索領域和搜索需求(例如:機票搜索、旅游搜索、生活搜索、小說搜索、視頻搜索等等),如國內的酷訊,去哪兒,攜程等。在其特定的搜索領域有更好的用戶體驗。相比通用搜索動輒數千臺檢索服務器,垂直搜索需要的硬件成本低、用戶需求特定、查詢的方式多樣。
集合式搜索引擎
集合式搜索引擎:該搜索引擎類似元搜索引擎,區別在于它并非同時調用多個搜索引擎進行搜索,而是由用戶從提供的若干搜索引擎中選擇,如HotBot在2002年底推出的搜索引擎。
門戶搜索引擎
門戶搜索引擎:AOLSearch、MSNSearch等雖然提供搜索服務,但自身既沒有分類目錄也沒有網頁數據庫,其搜索結果完全來自其他搜索引擎。
免費鏈接列表
免費鏈接列表(Free For All Links簡稱FFA):一般只簡單地滾動鏈接條目,少部分有簡單的分類目錄,不過規模要比Yahoo!等目錄索引小很多。
2. 搜索引擎的技術架構
優秀的搜索引擎需要復雜的架構和算法,以 此來支撐對海量數據的獲取、存儲,以及對用戶查詢的快速而準確地響應。
從架構層面,搜索引擎需要能夠對以百億計的海量網頁進行獲取、存儲、處理的能力,同 時要保證搜索結果的質量。
如何獲取、存儲并計算如此海量的數據?
如何快速響應用戶的査 詢?
如何使得搜索結果能夠滿足用戶的信息需求?
這些都是搜索引擎面對的技術挑戰。 下圖是一個通用的搜索引笨架構示意圖:
搜索引擎架構
搜索引擎由很多技術模塊構成,各自負責整體 功能的一部分,相互紀合形成了完善的整體架構。
抓取網頁:
搜索引擎的信息源來自于互聯網網頁,通過網絡爬蟲將互聯網的信息獲取到本地. 因 為互聯網頁面中有相當大比例的內容是完全相同或者近似重復的,"網頁去重"模塊會對此做 出檢測,并去除重復內容。
建立索引:
抓取到網頁后,搜索引擎會對網頁進行解析,抽取出網頁主體內容和相關信息,(包括網頁所在URL、編碼類型、頁面內容包含的關鍵詞、關鍵詞位置、生成時間、大小、與其它網頁的鏈接關系等)。根據一定的相關度算法進行大量復雜計算,得到每一個網頁針對頁面內容中及超鏈中每一個關鍵詞的相關度(或重要性),然后用這些相關信息建立網頁建立索引。為了加快響應用戶査詢的速度,網頁內容通過"倒排索引"這種高效查詢數據 結構來保存,而網頁之間的鏈接關系也會予以保存。之所以要保存鏈接關系,是因為這種關系 在網F相關性排序階段是可利用的,通過"鏈接分析"可以判斷頁面的相對重要性,對于為用 戶提供準確的搜索結果幫助很大。
由于網頁數量太多,搜索引擎不僅需要保存網頁原始信息,還要存儲一些中間的處理結果 使用單臺或者少量的機器明顯是不現實的。Google等商業搜索引擎為此開發了一整套云存儲與 云計算平臺,使用數以萬計的普通廉價PC搭建了海量信息的可靠存儲與計算架構,以此作為搜索 引擎及其相關應用的基礎支撐。優秀的云存儲與云計算平臺已經成為大型商業搜索引擎的核心 競爭力。 上面所述是搜索引擎如何獲取并存儲海量的網頁相關信息,這些功能因為不需要實時計 算,所以可以被看做是搜索弓I擎的后臺計算系統。
查詢詞分析
搜索引擎的最重要目的是為用戶提供準確全 面的搜索結果,如何響應用戶査詢并實時地提供準確結果構成了搜索引擎前臺計算系統。 當搜索引擎接收到用戶的査詢詞后,首先需要對查詢詞進行分析,希望能夠結合查詢詞和 用戶信息來正確推導用戶的真正搜索意圖。在此之后,首先在緩存中査找,搜索引擎的緩存系 統存儲了不同的查詢意圖對應的搜索結果,如果能夠在緩存系統找到滿足用戶需求的信息,則 可以直接將搜索結果返回給用戶,這樣既省掉了重復計算對資源的消耗,又加快了響應速度;
搜索結果排序
如果保存在緩存的信息無法滿足用戶需求,搜索引擎需要調用"網頁排序"模快功能,根據用 戶的査詢實時計算哪些網頁是滿足用戶信息需求的,并排序輸出作為搜索結果。而網頁排序最 重要的兩個參考因素中,一個是內容相似性因素,即哪些網頁是和用戶查詢密切相關的;另外 一個是網頁重要性因素,即哪些網頁是質量較好或者相對重要的,這點往往可以從鏈接分析的 結果獲得。結合以上兩個考慮因素,就可以對網頁進行排序,作為用戶查詢的搜索結果。
參考文獻:
《這就是搜索引擎:核心技術詳解》
《搜索引擎—信息檢索實踐》
轉自:http://blog.csdn.net/hguisu/article/details/7955985
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/2741