摘要: 對比介紹了XML語言與HTML語言以及搜索引擎的工作原理和相關(guān)的幾項技術(shù),設(shè)計了基于XML的搜索引擎的模型,介紹了模型的設(shè)計思想及大體框架。模型包括機器人模塊、轉(zhuǎn)換模塊、解析模塊、索引模塊和查詢模塊這幾部分。
關(guān)鍵詞:XML;HTML;搜索
1 引言
HTML-Hypertext Markup Language,即超文本標記語言。以其簡單精煉的語法、極易掌握的通用性與易學(xué)性,使互聯(lián)網(wǎng)也才得以普及發(fā)展以至今日的輝煌。然而,隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,出現(xiàn)了Web文件的復(fù)雜化、多樣化、智能化,另外同樣的數(shù)據(jù)能否根據(jù)不同用戶的需求以不同的效果、形式、表達再現(xiàn)出來也是人們關(guān)注的問題??蓴U展標記語言就是在這樣的背景下應(yīng)運而生,以XML為基礎(chǔ)的新一代WWW環(huán)境是直接面對Web數(shù)據(jù)的,不僅可以很好的兼容原有的Web應(yīng)用,而且可以更好的實現(xiàn)Web中的信息共享與交換,隨著XML的廣泛應(yīng)用,基于XML文檔的搜索引擎模型就成為眾望所歸。
2 搜索引擎的工作原理
一般說來,搜索引擎由搜索器、索引器、檢索器和用戶接口四個部分組成。
2.1 搜索器一抓取網(wǎng)頁
搜索器根據(jù)一定的網(wǎng)頁搜集策略和規(guī)劃,調(diào)度運行網(wǎng)頁自動搜索軟件如Crawl、Spider等,對互聯(lián)網(wǎng)上的網(wǎng)頁進行快速有效的搜集,并將它們存入搜索引擎的網(wǎng)頁數(shù)據(jù)庫中。
2.2 索引器一處理網(wǎng)頁
索引器的功能是理解搜索器所搜索的信息,從中抽取出索引項用于表示文檔以及生成文檔庫的索引表。此外還包括去除重復(fù)網(wǎng)頁、分析超鏈接、計算網(wǎng)頁的重要度功能等。
2.3 檢索器一提供檢索服務(wù)
檢索器的功能是根據(jù)用戶的查詢在索引庫中快速檢出文檔,進行文檔與查詢的相關(guān)度評價,對將要輸出的結(jié)果進行排序,并實現(xiàn)用戶相關(guān)性反饋。
2.4 用戶接口一界面
用戶接口的作用是便于輸入用戶查詢、顯示查詢結(jié)果、提供用戶相關(guān)性反饋,分為簡單接口和復(fù)雜接口兩種類型。簡單接口只提供用戶輸入查詢串的文本框,復(fù)雜接口可以讓用戶對查詢進行限制。
3 基于XML的搜索引擎整體設(shè)計
基于XML的搜索引擎的總體結(jié)構(gòu)和普通的基于HTML的搜索引擎一樣仍然包括網(wǎng)頁采集、索引以及用戶查詢這幾大模塊,但是,由于HTML語言與XML語言并存,必需有把HTML格式的文檔轉(zhuǎn)換為XML格式的轉(zhuǎn)換模塊。另外針對XML文檔的特點,建立索引之前需要提取XML文檔的文本信息和結(jié)構(gòu)信息,這個工作由一個XML解析器來完成,所以在索引模塊中應(yīng)加入一個XML文檔解析器,文中把加入解析器后的索引模塊稱為解析索引模塊。
所以基于XML的搜索引擎應(yīng)由網(wǎng)頁采集模塊、HTML到XML轉(zhuǎn)換模塊、網(wǎng)頁解析和索引模塊、用戶查詢模塊這四部分組成。如圖1所示。
4模塊設(shè)計
4.1網(wǎng)頁采集器模塊
基于XML的搜索引擎的網(wǎng)頁采集器模塊和基于HTML的普通搜索引擎的網(wǎng)頁采集器職能相同,它們都是一個Robot程序通過在Internet上一刻不停的漫游,抓取網(wǎng)頁資源,同時定期瀏覽己存儲在自己數(shù)據(jù)庫中的網(wǎng)頁,以避免網(wǎng)頁過期導(dǎo)致的無效鏈接。機器人和web站點的web服務(wù)器通過HTTP ( Hypertext Transfer Protocol)協(xié)議進行交互,從Web站點下載XML文檔和HTML文檔。
4.2轉(zhuǎn)換模塊
機器人模塊下載的文檔包括HTML文檔和XML文檔,而索引器要為XML文檔建立索引,必須把HTML文檔轉(zhuǎn)換為XML文檔,這就需要有個轉(zhuǎn)換器。
轉(zhuǎn)換方法主要有:HTML文檔直接向XML的轉(zhuǎn)換;利用XHTML進行轉(zhuǎn)換;利用智能代理進行轉(zhuǎn)換。文章使用了網(wǎng)上的轉(zhuǎn)換工具(http: //www.html2XML.com/Html2XMLIntro. asp)這個轉(zhuǎn)換工具,可以對網(wǎng)絡(luò)HTML格式資源的URL或上載一個HTML文檔進行轉(zhuǎn)換為XML,輸出XML文檔格式,通過IE5.0內(nèi)嵌的樣式表進行顯示,還可以下載XML2html.xsl工具把XML文檔轉(zhuǎn)換回HTML文檔。
4.3解析索引模塊
基于XML搜索引擎的解析與索引模塊是整個搜索引擎最關(guān)鍵的部分。XML文檔是一種半結(jié)構(gòu)化的數(shù)據(jù),它的數(shù)據(jù)包含結(jié)構(gòu)和內(nèi)容兩部分,在對它建立索引前首先必須對它進行解析,將結(jié)構(gòu)信息和內(nèi)容信息分別提取出來為它們建立索引。在對以前的HTML文檔數(shù)據(jù)建立索引時,需要保存的信息主要是文檔中的詞項信息,就是某一個詞項在那篇文檔中出現(xiàn),出現(xiàn)了幾次以及出現(xiàn)的位置,所謂的詞項即是在檢索的時候用戶可能輸入的關(guān)鍵詞。對XML文檔數(shù)據(jù)建立索引時,要保存更多的信息。首先當然是標簽間的數(shù)據(jù)信息,另外還有標簽信息和文檔中標簽的嵌套層次信息。衡量索引的好壞是看它本身占據(jù)多少額外的磁盤空間和查詢時的檢索速度。
解析與索引模塊要實現(xiàn)的功能包括兩部分:對XML文檔的解析和對解析后提取的內(nèi)容信息和結(jié)構(gòu)信息建立索引。
4.3.1解析
XML文檔的解析是通過一個解析器來完成的,解析器的主要任務(wù)是提取XML文檔的內(nèi)容信息和結(jié)構(gòu)信息,它負責(zé)對輸入的XML文檔進行解析,生成DOM樹,DOM樹生成后,對樹的每個節(jié)點做個標記,這個標記在它所處的文檔中是唯一的,即一個標記唯一標識一個節(jié)點,這可以方便津立素引。我們采用了Apache Software Foundation提供的DOM軟件包xercesl.3.1 XML解析器來實現(xiàn)文檔的解析。
4.3.2索引
索引的組織方式對于搜索引擎的檢索效率起著關(guān)鍵作用,基于XML的搜索引擎也不例外,索引器就是用來為文檔建立索引的。由于對XML文檔的索引既要對標簽標注的內(nèi)容建立索引,又要對標簽本身建立索引,所以XML文檔的索引文件比HTML文檔的索引文件要大。
采用傳統(tǒng)倒排文件索引表,索引表有幾種類型。有文檔結(jié)構(gòu)表、文檔信息表、關(guān)鍵詞索引表。文檔結(jié)構(gòu)表主要記錄文檔的標簽信息;文檔信息表記錄文檔元信息;關(guān)鍵詞索引表記錄文檔內(nèi)容信息。
4.4查詢模塊
與基于HTML文檔的搜索引擎相同,基于XML文檔的搜索引擎也要有其用戶檢索機制,即本系統(tǒng)中的查詢模塊,基本過程都是用戶輸入關(guān)鍵詞,搜索引擎返回與關(guān)鍵詞相關(guān)的網(wǎng)頁網(wǎng)址及該網(wǎng)頁的簡單描述。
5 結(jié)束語
隨著XML的不斷完善,該技術(shù)必將發(fā)展成為將來IT業(yè)的主流,而基于XML文檔檢索的搜索引擎也將是未來Internet信息技術(shù)熱點。它的前景將是十分廣闊。
參考文獻
[1] 王海波,姜吉發(fā).XML搜索引擎研究[J]計算機應(yīng)用研究,200118(4)
[2]史艷,李偉生.基于XML的搜索引擎技術(shù)的研究與設(shè)計[J]計算機工程與設(shè)計,1999 (9)
[3] 胡師彥.XML原理與應(yīng)用[[J].哈爾濱商業(yè)大學(xué)學(xué)報,2001,17(4): 55-58
作者簡介:吳啟明(1973- ), 男, 湖南瀏陽, 武漢大學(xué)碩士, 講師, 研究方向為數(shù)據(jù)挖掘,XML數(shù)據(jù)處理,個性化搜索。