3.2.1搜索引擎的係統結構與原理
搜索引擎的檢索係統由以下幾個部分組成:
1)搜索器
互聯網每時每刻都在增加新的內容,為了及時反映信息源的情況,人們開發出一種名為“網絡蜘蛛”或“機器人”的網頁搜索軟件,負責訪問網絡上的各個站點,搜集網上不斷更新的網頁信息並帶回搜索係統。搜索器的主要功能就是在互聯網中漫遊、發現和搜集信息。它常常是一個遵循一定協議的計算機程序,即蜘蛛程序。她日夜不停地運轉,要盡可能多、盡可能快地抓取網頁搜集各類信息。同時,由於互聯網上的信息更新非常快,所以還要定期更新已經搜集過的舊信息,以避免死鏈接和無效鏈接,保證檢索結果的質量。
2)分析器
分析程序通過一些特殊算法,從蜘蛛程序抓回的網頁源文件中抽取主題詞,並對其賦予不同的權值,以表明這些主題詞同網頁內容的相關程度,以判斷網頁內容。分析程序的目的是從一個URL到相應網頁的主題詞建立起的一種關聯,並通過對主題詞的提取和分析,判斷該網頁所描述的信息。
3)索引器
信息進行分類整理,建立各種索引並更新搜索引擎數據庫。索引器中將生成從關鍵詞到URL的關係索引表。索引表一般使用某種形式的倒排表,即由索引項查找相應的URL,並以特定的數據結構存在索引數據庫中。
倒排表是一個索引結構,包括兩個索引表:文檔表和術語表。
文檔表由文檔記錄組成。每一條記錄包括兩個字段,一個是“文檔標號”(DOC_ID),另一個是“張貼表”(POSTING_LIST),張貼表是一組出現在文檔之中的術語的列表(或術語存儲的地址表),它們按某種相關度量排序。
術語表則由一組術語記錄組成,每一條記錄中包含兩個字段:一個是術語標號(TERM_ID),另一個也是“張貼表”,此表中記錄了含有此術語的文檔標號。
由此種結構可以很容易地完成諸如“請返回所有與一個(組)關鍵詞相關的文檔”或“請返回與給定的一個或幾個文檔中術語相關的所有術語”這樣的請求。
例如,用戶輸入了3個關鍵詞,則可在術語表中先查到三個術語的標號,取這三個標號對應記錄中的所有文檔標號的交集(公共部分),作為檢索的返回結果。它們是同時含有三個關鍵詞的所有文檔的標號集,由此標號集對應為這些文檔的鏈接地址,由此可鏈接並查到所有文檔。
4)檢索器
檢索器的主要功能是根據用戶輸入的關鍵詞在索引器形成的倒排表中進行查詢,同時完成頁麵與查詢之間的相關度評價,對將要輸出的結果進行排序,並實現某種用戶相關性反饋機製。
5)用戶接口
用戶接口的作用是輸入用戶查詢、顯示查詢結果、提供用戶相關性反饋機製。主要的目的是方便用戶使用搜索引擎、高效率、多方式地從搜索引擎中得到有效、及時的信息。
通過WEB服務器軟件,為用戶提供瀏覽器界麵下的信息查詢。每個搜索引擎都提供了一個良好的界麵,並具有幫助功能。用戶隻要把想要查找的關鍵字或短語輸入查詢欄中,點擊“查詢”按鈕,搜索引擎就會根據用戶輸入的提問,在索引中查找相應的檢索詞語,進行必要的邏輯運算,最後給出查詢的命中結果(均為超文本鏈形式)。用戶點擊搜索引擎提供的鏈接點,馬上就可以訪問到相關網頁。有些搜索引擎將搜索的範圍進行了分類,如“網站”、“中文網頁”、“新聞”等,在指定的類別中進行檢索可以提高查詢效率,搜索結果的“命中率”較高。
3.2.2搜索引擎的分類
1)按照信息搜集方法的不同分
(1)目錄式搜索引擎(DIRECTORYSEARCHENGINE)。通過人工方式來搜集信息並對信息進行歸類。首先,編輯人員通過查看相關網頁,根據網頁的內容提煉出主題詞和網頁摘要,並將該網頁的鏈接歸入事先確定好的分類目錄中。這種做法與圖書館的分類人員所進行的工作類似。由於此類搜索引擎主要是由人工進行分類的,所以信息準確度高,能夠比較好地滿足查詢者的需要。但是由於需要人工介入,因此目錄創建的工作量大,收集的信息量有限,信息更新不及時。這類搜索引擎的代表是:YAHOO!。
(2)機器人搜索引擎(CRAWLER_BASEDSEARCHENGINE)。由蜘蛛人程序按照某種規則自動在互聯網上搜集信息,並進行歸類。具體內容參見上一節的介紹。這類搜索引擎的代表是:GOOGLE。
(3)元搜索引擎(METASEARCHENGINE)。元搜索引擎和一般搜索引擎的區別在於:元搜索引擎沒有自己的數據庫,它是將用戶的查詢請求同時向多個搜索引擎遞交,將返回的結果進行重複排除、重新排序等處理後,作為自己的結果返回給用戶。這類搜索引擎的優點是返回結果的信息量大,缺點是不能夠充分使用元搜索引擎的功能,用戶需要做更多的篩選。網上的一些元搜索引擎地址如下: