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