摘要:針對傳統數據網格信息服務的不足之處,在分析Web搜索引擎技術和基于關鍵詞的數據庫索引技術基礎之上,結合這兩種信息獲取技術,設計了數據網格中結構化數據資源發現技術的體系結構。在科學數據網格信息服務系統中,利用開源Lucene全文檢索軟件包,實現了結構化數據資源發現的關鍵技術。
關鍵詞:網格信息服務;Web搜索引擎;關鍵詞查詢;資源發現
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)07-0246-03
0引言
網格技術開始于計算網格,現在大多數網格中間件的信息服務均以計算資源為中心,其信息服務的數據格式設計也都緊緊圍繞著如何有效地描述計算資源這一核心進行。科學數據網格是一種數據網格,其目標是實現數據資源的有效共享和分布處理,其信息服務主要是為用戶提供便捷的信息獲取方式,快速定位到用戶感興趣的數據資源,并以有效的方式組織和顯示用戶感興趣的數據資源。計算網格信息服務中間件不能滿足科學數據網格信息服務的需求。
傳統的數據網格信息服務主要通過管理元數據來提供目錄式的信息服務。元數據中包含的信息量有限,目錄式信息服務很難準確、全面地返回用戶感興趣的數據資源信息。描述數據資源的元數據信息很大程度上也需要數據庫管理人員介入編寫,很不方便。隨著元數據信息的增加,管理元數據信息的集中式目錄信息服務系統的性能也將急劇下降。因此,考慮采用新的技術和方法來研究數據網格信息服務系統。
本文主要在分析研究Web搜索引擎技術和基于關鍵詞的關系數據庫索引技術的基礎上,結合這兩種信息獲取技術,設計一種適合于數據網格中結構化數據資源的關鍵詞檢索發現的技術體系,使其能夠在科學數據網格這種分布式環境中有效地發現和組織關系數據庫中的結構化數據資源。
1相關技術
1.1Web搜索引擎技術
作為當前最主要的互聯網信息獲取方式,Web搜索引擎可以讓用戶通過關鍵詞在浩瀚的網絡海洋中快速地找到自己感興趣的信息。一般搜索引擎結構如圖1所示。
一般搜索引擎主要由采集器、索引器、檢索器、用戶接口以及文檔庫和倒排索引庫組成。采集器又稱為網絡蜘蛛,主要通過HTTP協議遍歷互聯網,抓取網頁,并將網頁保存到文檔庫中;索引器對文檔庫中的HTML文檔進行分詞、過濾等分析后,建立倒排索引,并將倒排索引文件保存到索引庫中;檢索器主要從索引庫中找出與用戶查詢請求相關的文檔集合;用戶接口為用戶提供可視化的查詢輸入和結果輸出界面。
1.2基于關鍵詞的數據庫索引技術
SQL語言是存取關系數據庫中數據的主要界面。但是,對普通用戶來說,SQL語言既難學習,又難使用。而且,用戶在用SQL語句查詢關系數據庫時,必須知道數據庫中數據的Schema。基于關鍵詞的數據庫檢索系統,使用戶無須任何SQL語言和數據庫Schema的知識,能夠像使用百度、Google那樣通過提交關鍵詞來獲取數據庫中的相關數據。以EKSO系統為例來進行分析。如圖2所示,EKSO系統由數據庫采集器、索引器和查詢請求處理器組成。采集器在遍歷數據庫時,引入了文本對象來組織數據庫中相互關聯的關系表中的元組,并將文本對象中所有元組的文本屬性值連接起來形成虛擬文檔。索引器通過處理虛擬文檔,對所有的虛擬文檔建立索引,將虛擬文檔中的關鍵詞與相應的文本對象鍵值聯系起來。查詢請求處理器與搜索引擎中的檢索器功能相似,主要負責處理用戶的關鍵詞查詢請求,并返回根據相關度排好序的結果。不同的是查詢請求處理器直接返回文本對象鍵值給用戶,讓用戶自己通過文本對象鍵值從數據庫中獲取相關的數據。
1.3開源Lucene
Lucene是一個非常成功的開放源代碼的全文檢索引擎工具包,提供了完整的全文檢索引擎架構,以方便軟件開發人員在目標系統中實現全文檢索引擎。分析Lucene源碼結構,借鑒其設計和實現思路,利用并擴展其工具包來實現科學數據網格的信息服務系統。
如圖3所示,Lucene由基礎結構封裝、索引核心、對外接口三大部分組成。基礎結構封裝是整個系統結構的基石,主要定義了常用的數據結構、算法和索引數據結構中的概念類;索引核心直接操作索引文件,是系統結構的重點,主要是對索引文件操作和操作實現的封裝;對外接口是在索引核心基礎之上,對查詢操作和基于目標系統的分詞等操作的封裝。
2結構化數據資源發現技術體系結構的設計
2.1結構化數據資源發現技術框架
科學數據網格中包含大量分布的結構化數據資源,為了有效地共享這些海量的結構化數據資源,迫切需要基于這些數據內容的檢索引擎,以方便科研工作者快速有效地定位到自己感興趣的數據資源。在充分借鑒和利用信息獲取技術成果的基礎上,結合Web搜索引擎技術和基于關鍵詞的數據庫索引技術,設計出數據網格中結構化數據資源發現的技術框架。
如圖4所示,數據網格中結構化數據資源發現系統主要由檢索引擎、采集器、索引編制與合并模塊、倒排索引庫和質量權重計算模塊等組成。與該系統直接關聯的系統有科學數據網格數據訪問服務系統(Data Access Service, DAS)。科學數據網格數據訪問服務是對結構化的關系數據庫提供統一訪問接口的主要服務端軟件。數據訪問服務提供了統一的網格服務接口,通過這些接口能夠訪問異構的多種關系數據庫。
2.2檢索引擎
檢索引擎模塊主要為用戶提供基于關鍵詞的查詢接口,以方便用戶定位自己感興趣的數據資源。檢索引擎的主要流程是對用戶輸入的關鍵詞進行預處理,然后在倒排索引庫中進行查詢分析,以確定與檢索請求相關的結構化數據資源的集合,根據這些資源的質量權值和關鍵詞的先后順序來計算其優先權值,按照優先權值從大到小的順序將命中的資源條目返回給用戶。用戶得到的資源條目信息應包含資源標志符、資源訪問位置和資源描述等。以關系數據庫中的關系表來定義資源單位,直接以數據庫服務域名加上關系表在數據庫中的全局標志作為結構化數據資源標志符。
2.3采集器
采集器主要通過訪問數據、訪問服務的統一訪問接口遍歷關系數據庫來采集數據庫中的結構化數據資源。采集器將通過數據訪問服務獲取的各關系表中的文本字段連接起來,形成文本文檔。系統規模不是太大時,采集器將文本保存后,提交給索引編制與合并模塊建立索引。隨著數據網格中數據資源的不斷增長,信息服務系統需要在局域網中采用分布式的多個采集器,甚至通過機群來采集大量的結構化數據資源。為了提高分布處理能力,此時采集器邊采集數據資源并將其轉換為文本文檔,邊對文檔建立索引,然后將索引模塊提交給索引合并模塊。
2.4倒排索引庫
倒排索引文件機制是一種面向關鍵詞的機制,利用它可以提高檢索效率。數據網格中結構化數據的倒排索引與對文本正文的倒排索引相似,由關鍵詞詞典和倒排索引文件兩部分組成。與對正文的倒排索引不同,結構化數據倒排索引文件的倒排表中保存的是關鍵詞出現的資源標志符及頻率。
2.5索引編制與合并模塊
數據網格中通常包含海量的結構化數據。為了提高整個系統的并行性,采集器將采集到的文本文檔進行索引后,提交索引數據模塊給索引合并模塊,此時索引合并模塊可能會成為整個系統的瓶頸。當前開源的索引軟件包中大都采用增量索引算法。增量索引索算法不具備分布式環境下索引合并的能力。針對科學數據網格這種分布式環境的特點,設計新的索引合并算法,并采用定期進行索引合并的機制來提高系統檢索的效率。
2.6質量權值計算模塊
關鍵詞查詢中得到的命中資源條目非常大,如何從中選出質量高的數據資源優先返回給用戶,即對搜索結果排序,是一個關鍵問題,也是一個難點。檢索結果中數據資源質量和該數據資源與用戶查詢請求的相關性,是對檢索結果中數據資源排序的重要依據。對建立索引的結構化數據資源進行評價,并通過計算權值的方式將評價結果體現在用戶檢索結果的排序上,這對于提高資源發現的實際效果有著根本性的作用。在檢索結果與用戶查詢請求相關性的計算方面,借鑒Web搜索引擎的相關度計算方法。同時,由于結構化數據經過系統的整理,評價其質量權值比一般的非結構化數據更具有意義,在檢索結果排序中應占有很大的比重。主要從元數據和結構化數據的相互聯系兩個方面來設計質量權值評價方法。例如,當某關鍵詞出現在元數據中時,對應的資源標志符就有更高的權值。還可以利用數據庫中關系表的外鍵聯系來建立聯系圖,圖中節點的質量權值相互影響。
3關鍵技術的實現
3.1數據訪問服務
數據訪問服務在實現上采用了客戶端/服務端模式,由數據訪問服務包、映射工具MappingBuilder和客戶端DataView三部分組成。數據訪問服務包是數據訪問服務的服務器端,部署在各分布的關系數據庫服務器上,是數據訪問服務的核心;MappingBuilder是在數據庫服務器之上建立具有統一訪問接口的虛擬數據庫的映射工具;DataView是數據訪問服務的Web客戶端。
3.2數據庫采集器
在實現上,數據庫采集器通過調用數據訪問服務的編程接口來抓取部署了數據訪問服務軟件的數據庫中的關系表。采集器首先通過數據訪問服務的MappingBuilder接口,獲得數據庫的Schema;然后根據Schema調用數據訪問服務的編程接口遍歷數據庫來抓取數據庫中的關系表。采集到的關系表由XML文檔組織。
在數據庫采集器中,文檔轉換處理主要是將采集到的結構化的關系表轉換為便于建立索引的文本文檔。當以數據庫中原始的關系表來定義資源的單位時,文檔轉換處理直接去掉XML文件中的標簽;然后建立起文檔與資源標志符的聯系。但資源單位的粒度定義更小時,就需要設計一個與基于關鍵詞的數據庫索引系統中的轉換算法類似的文檔轉換算法。
3.3倒排索引庫
科學數據網格中結構化數據的倒排索引由關鍵詞詞典和倒排索引文件兩部分組成。倒排索引文件的倒排表保存著關鍵詞出現的資源標志符及頻率。在實現時,直接在Lucene索引文件結構的基礎上定義索引文件的數據結構。資源標志符占用的空間肯定比文檔編號占用的空間大。為了提高效率并節省空間,倒排索引文件的倒排表中仍保存關系表轉換后的文檔編號,同時通過額外的空間來保存文檔編號到資源標志符號的映射表。
3.4索引編制與合并
對從關系表轉換來的文本文檔建立索引,直接采用Lucene中的增量索引算法。該算法是傳統的索引構建算法,由單文檔索引和索引歸并這兩個基本的算法構成。增量索引算法的基本思想是對新加入的需要建立索引的文檔先建立臨時索引文件;然后將臨時索引文件歸并到索引庫中。增量索引算法中,歸并因子控制著歸并的頻度,歸并因子對歸并時所需的內存也有直接影響。
當數據網格中數據資源規模不大時,數據采集器直接將轉換后的文本文檔提交給索引編制與合并模塊。科學數據網格中包含著大量的結構化數據資源,其信息服務系統在局域網中采用分布式的多個采集器,索引合并模塊為一臺大容量的服務器。為了提高系統并行性,采集器邊采集結構化的關系表并將其轉換為文本文檔,邊對這些文檔通過增量索引算法建立倒排索引;然后,采集器直接提交索引文件模塊給索引合并服務器。
增量索引算法中的合并機制不能滿足索引合并模塊的需求。在增量建立索引的過程中,會形成多個索引文件模塊,這對于檢索引擎必定會影響其檢索性能。當索引文件作為采集器的結果提交給索引合并模塊時,多個索引模塊很不方便。在Lucene軟件包的基礎上設計了新的索引合并算法,在每次索引合并后,索引庫中包含一個索引模塊。在索引庫文件作為采集器的結果提交給索引合并模塊之前,調用索引合并算法對采集器索引庫中的索引模塊進行合并。為了提高效率,索引合并服務器定期調用索引合并算法,合并采集器提交的索引文件。
3.5檢索引擎
檢索引擎通過調用Lucene的檢索軟件包,復用Lucene的檢索引擎。Lucene檢索引擎返回的結果是查詢請求中關鍵詞出現的文檔編號的集合。通過查詢文檔編號與資源標志符的映射表,將文檔編號集合轉換為資源標志符集合。映射表在實現上,采用以文檔編號為鍵值的哈希表建立索引,因此轉換過程效率非常高;然后,檢索引擎模塊通過資源標志符,從索引庫中取出每個命中資源標志符相關的描述信息和資源訪問位置(即資源所屬的數據訪問服務端的標志符);最后,檢索引擎模塊將資源標志符、描述信息和資源訪問位置返回給用戶。
檢索引擎返回結果中的排序算法,是Lucene檢索引擎中的默認排序算法。本文根據數據資源的元數據信息,在建立索引過程中通過設置文本文檔和域的Boost值來影響排序結果。針對科學數據網格中結構化數據的特點,利用元數據信息設計更合理質量權值計算模塊和排序算法,是優化檢索引擎的方向。
4結束語
針對傳統數據網格信息服務的不足之處,在充分借鑒和利用信息獲取技術最新成果的基礎上,結合Web搜索引擎技術和基于關鍵詞的數據庫索引技術,設計了適合數據網格信息服務的結構化數據資源發現的技術體系。在最新版本的科學數據網格信息服務系統中,利用開源Lucene全文檢索軟件包,實現了結構化數據資源發現框架中的關鍵技術。
在科學數據網格信息服務系統開發的實踐中,不斷完善結構化數據資源發現技術的體系結構,細化研究體系結構中用于技術,是下一步工作的重點。
參考文獻:
[1]FOSTER I,KESSELMAN C.網格計算[M]. 金海, 等譯.北京:電子工業出版社,2004.
[2]南凱,閻保平.科學數據庫系統平臺與e-Science[C]//科學數據庫與信息技術論文集:第7集.北京:中國環境科學出版社,2004.
[3]SERGEY B,LAWRENECE P.The anatomy of a large-scale hypertextual web search engine[C]//Proc of the 7th International World Wide Web Conference.[S.l.]:[s.n.],1998.
[4]HALOTIA G, HULGERI A, NAKHEY C, et al. Keyword searching and browsing in databases using BANKS[C]//AGRAWAL R,et al.Proc of the 18th Int’l Conf. on Data Engineering.San Jose: IEEE Press,2002.
[5]AGRAWAL S, CHAUDHURI S, DAS G.DBXplorer:a system for keyword-based search over relational databases[C]/AGRAWAL R,et al.Proc of the 18th Int’l Conf. on Data Engineering.San Jose: IEEE Press, 2002.
[6]HRISTIDIS V, PAPAKONSTANTINOU Y. Discver:keyword search in relational databases[C]//BERNSTEIN P A,et al.Proc of the 28th Int’l Conf. on Very Large Data Bases.Hong Kong: Morgan Kaufmann Publishers, 2002.
[7]HRISTIDIS V, GRAVANO L, PAPAKONSTANTINOU Y. Efficient IR-style keyword search over relational databases[C]//FREYTAG J C,et al.Proc of the 29th Int’l Conf. on Very Large Data Bases.Berlin: Morgan Kaufmann Publishers, 2003.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”