吳勝斌

摘要:本文提出一種以關系數據庫作為核心的XML全文檢索系統,該系統具備全文檢索功能,能夠進行元素級別的查詢,同時還能夠將數據庫查詢與全文檢索進行緊密結合,使其能夠按照元素與文檔的重要程度進行排序。
關鍵詞:關系數據庫;XML;全文檢索系統
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1007-9416(2017)10-0072-01
社會信息化的發展使傳統的關系數據庫已經難以滿足人們日益提升的應用需求,而XML的發展也使其成為數據交換的全新標準,這也使人們對XML文檔的查詢開展了大量的研究。當前對XML文檔查詢的研究主要集中在XML文檔的結構化方面,但對于XML關鍵字的檢索方面仍舊處于初步研究階段。
1 關系數據庫中XML全文檢索系統的研究
1.1 系統架構的研究
關系數據庫中XML全文檢索系統的系統架構與SQL Server的體系結構類似,其頂層用戶能夠利用Web服務來進行檢索功能,Web服務器會按照用戶檢索時的關鍵字來進行轉換,使其轉換成SQL傳輸至服務器后臺,關系數據庫的查詢引擎在檢測到用戶需要進行全文索引時,會從關系數據庫中對XML全文檢索引擎進行調用,然后用于查詢工作。該系統還能夠對全文檢索模塊進行調用,從而構建出相應的倒排索引。該系統與SQL Server不同的是,SQL Server會利用進程間通信,而SQL Server系統則是將關鍵字與數據庫查詢進行了結合。XML全文檢索系統具備以下特點,首先,該系統能夠支持XML全文檢索,對XML文檔的檢索查詢的最高精度能夠達到element級別,并按照文檔級別來按照用戶需求進行選擇。其次,XML全文檢索系統與XRank相比,XML全文檢索系統與數據庫查詢引擎實現了緊密的耦合,這也使其能夠適用于復雜內容的查詢。再次,該系統能夠使用戶對Rank函數進行靈活定義,進而達到節省檢索時間的目的。最后,該系統能夠對NOT、AND、OR等多種復雜表達形式的關鍵詞予以支持,利用關系數據庫便能夠實現SQL語句的邏輯運算[1]。
1.2 Dewey ID編碼方式的研究
在傳統的倒排索引當中,其在進行索引時只是對文檔中單詞的位置信息進行了記錄,而XML文檔不僅要對位置信息進行記錄,還要對元素信息進行記錄,因此需要對這些XML文檔中的元素信息進行編碼,編碼方式有很多,但能夠適用于XML全文檢索的只有Dewey ID的研究。Dewey ID編碼方式不僅能夠對元素所包含的路徑信息進行記錄,還能夠通過不同元素間公共父元素的比較來對最長字符串進行匹配,而這有助于改善多關鍵字檢索時會將最近的公共父元素當做檢索結果的問題。在應用Dewey ID編碼方式時,應對其進行擴展,擴展后的第一數值便是XML文檔的ID。將Dewey ID編碼方式進行倒排是最為簡單的方法,但這樣做會使倒排索引項產生不定長問題,而且需要進行重復存儲。因此,為了解決這一問題,還需要在Dewey ID倒排索引的基礎上再構建一層自索引,這樣做能夠有效避免重復存儲問題的出現,同時還能夠對元素中的關鍵詞位置進行快速查找[2]。
自索引的建立過程中,由于其在進行掃描時是按照從左向右的方式進行的,新結構的增加也只是在最右邊,而且平面倒排索引的增長方向是從左向右的,因此對于自索引倒排索引的建立相對較為簡單。自索引的倒排建立算法如圖1所示。
該算法需要對所有XML文檔中的元素進行全部掃描。在采用該算法進行全文檢索時,可能存在以下情形,第一種情形是給定的關鍵字能夠返回全部位置信息,這種情形只需要進行遍歷G就可以;第二種情形是Dewey ID與給定的關鍵詞返回全部位置信息,這只需要按照Dewey ID的路徑并返回位置信息即可,其代價也只是對相應G與自索引樹的遍歷。第三種情形是文件ID與給定的關鍵詞返回文件時產生關鍵詞的全部位置信息,這種情形可以按照文件ID的順序進行掃描就能夠明確后續文檔的開始。
1.3 與查詢引擎的結合研究
為了使關系數據庫能夠與查詢引擎實現無縫結合,索引類型可以參照CoDB中的Btree或Hash進行,即建立一種FTI索引類型,這樣不僅能夠建立索索引,還能夠利用Select語句來實現查詢。CoDB對索引的設計具有獨到之處,它能夠非常靈活的對新型索引類型進行加入,并且只需要設置接品函數,并在XML全文檢索系統的注冊表中對函數進行注入即可。
1.4 重要度計算方式的研究
在系統的重要度計算方式中,應加入衰減率概念,之所以要加入衰減率概念是因為在系統中對XML關鍵字檢索的定義是將下劃線部分與粗體字全部作為檢索結果,不過下劃線部分要明顯優于粗體字,因此為了使下劃線的重要程度能夠高于粗體字部分,需要加入衰減率概念。其計算方式是將檢索詞的關鍵字進行找出,然后將ElementA中關鍵字的權重進行定義,進而明確衰減率的取值范圍,并在元素中找出關鍵詞中的各個元素。根據祖先節點中詞的重要性是以遞減形式呈現的原則能夠對元素在檢索詞的重要度進行計算。關鍵字的權重可以按照兩大原則進行計算,其一是Element名字是關鍵字時的重要度高,其二是出現頻率越高的關鍵字重要度就越高。利用Rank函數能夠對所有XML文檔的Rank值進行獲取,并利用Order by語句來排序[3]。
2 關系數據庫中XML全文檢索系統的實現
將關系數據庫中XML全文檢索系統與SQL Server全文檢索系統進行對比,測試集為dblp,測試計算機為內存512M、CPU P4 2.0G、硬盤80G,XML全文檢索系統的測試平臺為Linux系統,SQL Server全文檢索系統的測試平臺是Windows 2000 Server,對比內容為建立索引時間、多關鍵字索引時間與單關鍵字索引時間。測試結果表明XML系統的索引建立時間與SQL Server系統相差不多,但對查詢時間卻遠遠超過SQL Server系統。由此可以證明,關系數據庫中XML全文檢索系統的檢索速度更快,在全文檢索功能上要更加優越。
參考文獻
[1]蘇新寧.基于XML的中文全文檢索關鍵技術及其發展——簡評《XML文檔全文檢索的理論與方法》[J].情報科學,2013,(11):155-158.
[2]林子雨,楊冬青,王騰蛟,張東站.基于關系數據庫的關鍵詞查詢[J].軟件學報,2010,(10):2454-2476.
[3]戴經國,李運智,謝東.關系數據庫的關鍵詞檢索[J].計算機系統應用,2009,(08):37-42.