1.概述
搜尋引擎(search engine)是指根據一定的策略、運用特定的電腦程式搜集互連網上的資訊,在對資訊進行組織和處理後,為使用者提供檢索服務的系統。
2.搜尋引擎分類
按照資訊搜集方法和服務提供者式的不同,搜尋引擎系統可以分為三大類:全文檢索搜尋引擎(Full Text Search Engine)、目錄索引類搜尋引擎(Search Index/Directory)和元搜尋引擎(Meta Search Engine)。
2.1 全文檢索搜尋引擎
全文檢索搜尋引擎是名副其實的搜尋引擎,國外代表有Google,國內則有著名的百度搜尋。它們從互連網提取各個網站的資訊(以網頁文字為主),建立起資料庫,並能檢索與使用者查詢條件相匹配的記錄,按一定的排列順序返回結果。
2.2 目錄索引類搜尋引擎
目錄式搜尋引擎以人工方式或半自動方式搜集資訊,由編輯員查看資訊之後,人工形成資訊摘要,並將資訊置於事先確定的分類架構中。目錄索引雖然有搜尋功能,但在嚴格意義上算不上是真正的搜尋引擎,僅僅是按目錄分類的網站連結清單而已。使用者完全可以不用進行關鍵詞(Keywords)查詢,僅靠分類目錄也可找到需要的資訊。目錄索引中最具代表性的莫過於大名鼎鼎的Yahoo雅虎。其他著名的還有Open Directory Project(DMOZ)、LookSmart、About等。國內的搜狐、新浪、網易搜尋也都屬於這一類。
2.3 元搜尋引擎
這類搜尋引擎沒有自己的資料,而是將使用者的查詢請求同時向多個搜尋引擎遞交,將返回的結果進行重複排除、重新排序等處理後,作為自己的結果返回給使用者,這類搜尋引擎兼集多個搜尋引擎的資訊,並且加入新的排序和資訊過濾,可以很好的提高使用者滿意度。
3. 全文檢索搜尋引擎
典型的搜尋引擎結構一般由以下三個模組組成:資訊採集模組(Crawler),索引模組(Indexer),查詢模組(Searcher)。
Crawler:從web中採集網頁資料。
Indexer:對Crawler採集資料進行分析產生索引。
Searcher:接受查詢請求,通過一定的查詢演算法擷取查詢結果,返回給使用者。
3.1 利用網路蜘蛛從互連網上抓取網頁
全文檢索搜尋引擎的“網路機器人(Robot)”或“網路蜘蛛(Spider)”是一種網路上的軟體,核心目的是為擷取Internet上的資訊。一般定義為“一個在網路上檢索檔案且自動跟蹤該檔案的超文本結構並迴圈檢索被參照的所有檔案的軟體”。機器人利用首頁中的超文本連結遍曆WWW,通過Url引用從一個HTML文檔爬行到另一個HTML文檔。網上機器人收集到的資訊可有多種用途,如建立索引、HIML檔案合法性的驗證、URL連結點驗證與確認、監控與擷取更新資訊、網站鏡像等。
機器人在網上爬行,因此需要建立一個URL列表來記錄訪問的軌跡。它使用超文本,指向其他文檔的URL是隱藏在文檔中,需要從中分析提取URL,機器人一般都用於產生索引資料庫。所有WWW的搜尋程式都有如下的工作步驟:
(1)機器人從起始URL列表中取出URL並從網上讀取其指向的內容;
(2)從每一個文檔中提取某些資訊(如關鍵字)並放入索引資料庫中;
(3)從文檔中提取指向其他文檔的URL,並加入到URL列表中;
(4)重複上述3個步驟,直到再沒有新的URL出現或超出了某些限制(時間或磁碟空間);
(5)給索引資料庫加上檢索介面,向網上使用者發布或提供給使用者檢索。
搜尋演算法一般有深度優先和廣度優先兩種基本的搜尋策略。機器人以URL列表存取的方式決定搜尋策略:先進先出,則形成廣度優先搜尋,當起始列表包含有大量的WWW伺服器位址時,廣度優先搜尋將產生一個很好的初始結果,但很難深入到伺服器中去;先進後出,則形成深度優先搜尋,這樣能產生較好的文檔分布,更容易發現文檔的結構,即找到最大數目的交叉引用。也可以採用遍曆搜尋的方法,就是直接將32位的IP地址變化,逐個搜尋整個Intemet。
量販式搜尋引擎最佳化是一個技術含量很高的網路應用系統。它包括網路技術、資料庫技術動標引技術、檢索技術、自動分類技術,機器學習等人工智慧技術。
3.2 建立索引表
索引技術是搜尋引擎的核心技術之一。搜尋引擎要對所收集到的資訊進行整理、分類、索引以產生索引庫,而中文搜尋引擎的核心是分詞技術。分詞技術是利用一定的規則和詞庫,切分出一個句子中的詞,為自動索引做好準備。目前的索引多採用Non—clustered方法,該技術和語言文字的理解有很大的關係,具體有如下幾點:
(1)儲存文法庫,和詞彙庫配合分出句子中的詞彙;
(2)儲存詞彙庫,要同時儲存詞彙的使用頻率和常見搭配方式;
(3)詞彙寬,應可劃分為不同的專業庫,以便於處理專業文獻;
(4)對無法分詞的句子,把每個字當作詞來處理。
索引器產生從關鍵詞到URL的關係索引表。索引表一般使用某種形式的倒排表(inverted list),即由索引項目尋找相應的URL。索引表也要記錄索引項目在文檔中出現的位置,以便檢索器計算索引項目之間的相鄰關係或接近關係,並以特定的資料結構儲存在硬碟上。
不同的搜尋引擎系統可能採用不盡相同的標引方法。例如Webcrawler利用全文檢索索引技術,對網頁中每一個單詞進行索引;Lycos只對頁名、標題以及最重要的100個注釋詞等選擇性詞語進行索引;Infoseek則提供概念檢索和片語檢索,支援and、or、near、not等布爾運算。檢索引擎的索引方法大致可分為自動索引、手工索引和使用者登入三類。
3.3 查詢
檢索器的主要功能是根據使用者輸入的關鍵詞在索引器形成的倒排表中進行檢索,同時完成頁面與檢索之間的相關度評價,對將要輸出的結果進行排序,並實現某種使用者相關性反饋機制。
通過搜尋引擎獲得的檢索結果往往成百上千,為了得到有用的資訊,常用的方法是按網頁的重要性或相關性給網頁評級,進行相關性排序。這裡的相關度是指搜尋索引鍵在文檔中出現的額度。當額度越高時,則認為該文檔的相關程度越高。能見度也是常用的衡量標準之一。一個網頁的能見度是指該網頁入口超級連結的數目。能見度方法是基於這樣的觀點:一個網頁被其他網頁引用得越多,則該網頁就越有價值。特別地,一個網頁被越重要的網頁所引用,則該網頁的重要程度也就越高。結果處理技術可歸納為:
(1)按頻次排定次序,通常,如果一個頁麵包含了越多的關鍵詞,其搜尋目標的相關性應該越好,這是非常合乎常理的解決方案。
(2)按頁面被訪問度排序 在這種方法中,搜尋引擎會記錄它所搜尋到的頁面被訪問的頻率。人們訪問較多的頁面通常應該包含比較多的資訊,或者有其他吸引入的長處。這種解決方案適合一般的搜尋使用者,而因為大部分的搜尋引擎都不是專業性使用者,所以這種方案也比較適合一般搜尋引擎使用。
(3)二次檢索 進一步淨化(比flne)結果,按照一定的條件對搜尋結果進行最佳化,可以再選擇類別、相關詞進行二次搜尋等。
由於目前的搜尋引擎還不具備智能,除非知道要尋找的文檔的標題,否則排列第一的結果未必是“最好”的結果。所以有些文檔儘管相關程度高,但並不一定是使用者最需要的文檔。