文/江玲 王亮
DRIS分層檢索資源
文/江玲 王亮
DRIS是一個(gè)分層式網(wǎng)頁搜索引擎技術(shù),采用DNS的地域分布式構(gòu)架,建立一個(gè)新的信息資源整合與檢索平臺(tái)。
目前,互聯(lián)網(wǎng)資源正以幾何級(jí)數(shù)增長,但是還沒有一個(gè)搜索引擎的數(shù)據(jù)庫可以和整個(gè)互聯(lián)網(wǎng)的增長保持同步。雖然,每個(gè)搜索引擎都在力圖為用戶提供全面而準(zhǔn)確的信息,但是它們不能建立一個(gè)可以鏡像整個(gè)互聯(lián)網(wǎng)的數(shù)據(jù)庫系統(tǒng),因此,我們需要一種全新的信息檢索系統(tǒng)。
為此,華中科技大學(xué)圖書館提出了一種全新的信息檢索系統(tǒng)——域內(nèi)資源整合系統(tǒng)(Domain Resources Integrated System,簡稱DRIS),為整合互聯(lián)網(wǎng)上的所有信息資源提供可行性方案。
對(duì)DRIS的研究主要來源于對(duì)館內(nèi)資源整合和數(shù)字圖書館聯(lián)盟建設(shè)的研究,以及對(duì)搜索引擎和網(wǎng)格技術(shù)的相關(guān)研究?!靶畔z索應(yīng)成為互聯(lián)網(wǎng)的內(nèi)在功能,每個(gè)人都應(yīng)該有自己的搜索引擎”是設(shè)計(jì)本系統(tǒng)的核心思想。DRIS要建立的是互聯(lián)網(wǎng)信息檢索的基礎(chǔ)建筑,而不是最終的搜索引擎。
我們從DNS技術(shù)的發(fā)展得到基本的啟發(fā)。在DNS系統(tǒng)建立之初,僅僅有數(shù)百個(gè)Web站點(diǎn),而相應(yīng)的DNS數(shù)據(jù)庫可以存儲(chǔ)在單個(gè)服務(wù)器上,但是當(dāng)WWW上站點(diǎn)的數(shù)目達(dá)到上百萬個(gè),各個(gè)站點(diǎn)分布世界各處且更新較為頻繁時(shí),僅有的幾個(gè)DNS服務(wù)器顯然難以有效管理如此多的站點(diǎn)。因此DNS最終發(fā)展成為一個(gè)分層的分布式系統(tǒng)。如今幾乎每個(gè)高校和大機(jī)構(gòu)都有自己的域名服務(wù)器,而互聯(lián)網(wǎng)上所有的站點(diǎn)都能在此系統(tǒng)中得到有效的管理。
但DNS僅僅起到WWW上“瀏覽和導(dǎo)航”的作用,我們還需要必要的網(wǎng)頁檢索功能,因此出現(xiàn)了網(wǎng)頁搜索引擎。但是由于種種原因,目前所有的商業(yè)搜索引擎都采用了集中式構(gòu)架。隨著WWW的迅速擴(kuò)張,網(wǎng)頁搜索引擎也遇到了當(dāng)初DNS遇到的問題:如今已有上百億的網(wǎng)頁分布在世界不同角落的服務(wù)器上,而當(dāng)前的搜索引擎卻要反復(fù)地訪問并下載全部的網(wǎng)頁到一個(gè)數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的更新率和覆蓋率根本無法得到保障。顯然,集中式的框架是不適于分布式的WWW信息管理。
參考DNS改進(jìn)和發(fā)展的歷史可以發(fā)現(xiàn),Web搜索引擎若像DNS那樣采用一種等級(jí)分布式的框架,一些基本問題就可能得到解決。既然DNS能夠索引各個(gè)站點(diǎn)的名稱,那么是否也能索引整個(gè)站點(diǎn)的所有網(wǎng)頁呢?我們?yōu)镈RIS設(shè)計(jì)了“搜索引擎+DNS”的基本思路。
DRIS采用了DNS的地域分布式構(gòu)架,建立一種新的信息資源整合與檢索平臺(tái)。此平臺(tái)在合適的范圍內(nèi),采用不同的信息檢索系統(tǒng),建立一種適合整個(gè)互聯(lián)網(wǎng)信息管理的基本構(gòu)架。
DRIS可簡單描述為(組織級(jí)—常規(guī)數(shù)據(jù)庫檢索系統(tǒng))—(主干網(wǎng)級(jí)—元數(shù)據(jù)采集系統(tǒng))—(國家級(jí)—分布式檢索系統(tǒng)),而其服務(wù)管理則采用了XML/Web Services/ UDDI的形式。基本結(jié)構(gòu)如圖1所示。
整個(gè)系統(tǒng)分為三層:第三層為DNS的三級(jí)域,一般對(duì)應(yīng)于某個(gè)組織機(jī)構(gòu),如一個(gè)大學(xué);第二層一般對(duì)應(yīng)于國家的各個(gè)主干網(wǎng);第一層則對(duì)應(yīng)于某個(gè)國家。
采用此基本框架,我們可以先在最底層下載網(wǎng)頁數(shù)據(jù),然后逐級(jí)傳遞到最上層的服務(wù)器上。由于網(wǎng)頁的下載更新工作都在不同的底層節(jié)點(diǎn)進(jìn)行,而這些節(jié)點(diǎn)一般又都對(duì)應(yīng)于某個(gè)局域網(wǎng),因而這種分布采集、逐層遞交的方式可以保證整個(gè)系統(tǒng)的數(shù)據(jù)每天更新,這樣更新率問題就得到了很好的解決。
但是按照這種方法,頂層的服務(wù)器數(shù)據(jù)存儲(chǔ)量可能依然很大,我們就不得不采用分布計(jì)算等復(fù)雜技術(shù)來保障頂層服務(wù)器的數(shù)據(jù)存儲(chǔ)和檢索服務(wù)質(zhì)量。要建立一個(gè)可以鏡像整個(gè)Internet數(shù)據(jù)的系統(tǒng)幾乎是不可能的,我們必須采用其他方式來完成此任務(wù)。因此,我們首先對(duì)搜索引擎基本技術(shù)及當(dāng)前具有代表性的幾種信息檢索系統(tǒng)和網(wǎng)頁搜索引擎的兩種基本算法進(jìn)行介紹,并在此基礎(chǔ)上對(duì)系統(tǒng)的基本思想進(jìn)行具體的實(shí)現(xiàn)。
信息檢索應(yīng)成為互聯(lián)網(wǎng)的內(nèi)在功能,每個(gè)人都應(yīng)該有自己的搜索引擎。而DRIS要建立的是互聯(lián)網(wǎng)信息檢索的基礎(chǔ)建筑,而不是最終的搜索引擎。
根據(jù)新系統(tǒng)三個(gè)層次的具體特點(diǎn),我們分別采用了不同的系統(tǒng)構(gòu)架和基本算法,來構(gòu)建一個(gè)更為高效的網(wǎng)頁檢索系統(tǒng)。我們按照從底層到高層的方式逐一介紹各層的搜索系統(tǒng)。
目前,大多數(shù)商業(yè)化網(wǎng)頁搜索器和檢索接口,利用兩種基于詞頻索引擎的基本算法,都是基于集中式結(jié)構(gòu)設(shè)計(jì)的,一般包括三個(gè)主要部分:網(wǎng)頁下載器、搜索引擎和基于超鏈接分析的搜索引擎。
按照基本體系結(jié)構(gòu)劃分,目前已有三種不同類型的信息檢索系統(tǒng):基于傳統(tǒng)數(shù)據(jù)庫的集中式檢索系統(tǒng)、基于元數(shù)據(jù)采集的檢索系統(tǒng)和分布式檢索系統(tǒng)。
隨著數(shù)據(jù)源規(guī)模擴(kuò)大和數(shù)據(jù)類型的增多,信息檢索系統(tǒng)基本結(jié)構(gòu)一般可依次選擇常規(guī)數(shù)據(jù)庫型、元數(shù)據(jù)采集型、分布式檢索型。
第三層:集中式檢索系統(tǒng)
第三層的系統(tǒng)將構(gòu)建一個(gè)三級(jí)域內(nèi)的網(wǎng)頁搜索引擎,如一個(gè)大學(xué)校園網(wǎng)的搜索引擎,其設(shè)計(jì)原理同現(xiàn)有的搜索引擎基本相同,差別僅在于其搜索范圍較小。這里采用了集中式的設(shè)計(jì)結(jié)構(gòu),此檢索系統(tǒng)由三個(gè)部分組成:網(wǎng)頁下載器、索引器以及檢索接口。
1.網(wǎng)頁下載器
此系統(tǒng)的網(wǎng)頁下載器將下載某個(gè)三級(jí)域內(nèi)的所有網(wǎng)頁。如 “www.hust.edu.cn ”是華中科技大學(xué)的域名,那么此域名下的低級(jí)域名如計(jì)算機(jī)系的域名“cs.hust.edu.cn”均可在此三級(jí)域名服務(wù)器上查到。因此相應(yīng)的Spider程序只要依照DNS列表就可下載此域內(nèi)的所有網(wǎng)頁。
系統(tǒng)Spider的工作是按不同的站點(diǎn)劃分的,Spider依次訪問一個(gè)域內(nèi)的全部站點(diǎn)。當(dāng)一個(gè)Spider訪問某個(gè)Web服務(wù)器時(shí),它將下載此服務(wù)器上的所有內(nèi)容,當(dāng)遇到指向其他服務(wù)器的鏈接時(shí),也將此鏈接作為本站內(nèi)容下載,但不再下載更深層次的鏈接,這些指向外部的鏈接相當(dāng)于Spider的訪問終止標(biāo)記,我們將這樣的鏈接稱為“終止標(biāo)志鏈接”。
這一點(diǎn)和現(xiàn)有的網(wǎng)頁搜索引擎有較大的不同——它們的Spider一般采用自由漫游的方式采集網(wǎng)頁信息,沒有一定的終止標(biāo)記,系統(tǒng)采用多個(gè)Spider協(xié)作的方式進(jìn)行網(wǎng)頁下載,一般都要用非常復(fù)雜的算法來指導(dǎo)Spider漫游,以便盡可能遍歷更多的網(wǎng)頁。而在系統(tǒng)中只要按站點(diǎn)下載即可,不用考慮各站點(diǎn)之間的復(fù)雜鏈接關(guān)系。
2.網(wǎng)頁索引器
索引技術(shù)的關(guān)鍵在于元數(shù)據(jù)的恰當(dāng)選擇。目前的搜索引擎一般采用全文檢索,即文中每一個(gè)詞匯都作為索引詞,而用詞頻和位置信息確定索引詞的重要性。我們也利用此方式進(jìn)行網(wǎng)頁的索引。而網(wǎng)頁的標(biāo)題、編碼等其他信息也可作為索引項(xiàng)。我們也可選用一些更為復(fù)雜的技術(shù)如W3C的Ontology語義模型來索引網(wǎng)頁。
3.檢索接口
檢索接口的主要功能是處理檢索結(jié)果并提供用戶接口,如何進(jìn)行檢索結(jié)果的排序是此部分的關(guān)鍵所在。在這一層,我們采用基于詞頻統(tǒng)計(jì)的算法進(jìn)行檢索結(jié)果的排序。因?yàn)樵谶@種情況下采集的網(wǎng)頁僅僅限于一個(gè)很小的范圍如一個(gè)大學(xué),而超鏈接分析則適用于大范圍的網(wǎng)頁排序。此外,針對(duì)局域網(wǎng)網(wǎng)頁集合的特點(diǎn),IBM的研究院曾提出了一種名字為“rank aggregation”的局域網(wǎng)內(nèi)網(wǎng)頁排序方法,在提高網(wǎng)頁檢索準(zhǔn)確率方面有一定的改進(jìn)。
第二層:元數(shù)據(jù)采集系統(tǒng)
此層的檢索系統(tǒng)將提供二級(jí)域范圍的信息檢索服務(wù),元數(shù)據(jù)采集系統(tǒng)用來構(gòu)建此層的搜索引擎。一個(gè)第三層節(jié)點(diǎn)如一個(gè)大學(xué)內(nèi)的網(wǎng)頁數(shù)目一般不會(huì)超過10萬個(gè),集中式系統(tǒng)可以很好地管理這種規(guī)模的數(shù)據(jù)。而一個(gè)第二層節(jié)點(diǎn)如“edu.cn”則包含了國內(nèi)所有的大學(xué),網(wǎng)頁總數(shù)可能超過千萬。如果依然采用常規(guī)的檢索系統(tǒng)就難以保證數(shù)據(jù)庫的覆蓋率和更新率,所以我們采用了元數(shù)據(jù)采集方式。
此層的搜索引擎包含兩個(gè)部分:網(wǎng)頁數(shù)據(jù)庫和檢索接口,該引擎沒有自己的數(shù)據(jù)采集器Spider,直接從第三層的節(jié)點(diǎn)數(shù)據(jù)庫中獲得數(shù)據(jù),如對(duì)應(yīng)于“edu.cn”節(jié)點(diǎn)的服務(wù)器可從數(shù)千個(gè)大學(xué)中的第三層節(jié)點(diǎn)搜索引擎數(shù)據(jù)庫中獲得網(wǎng)頁數(shù)據(jù),而不是直接下載上百萬張網(wǎng)頁,這種方法的數(shù)據(jù)更新效率更高。而由于采集的是元數(shù)據(jù),因此總數(shù)據(jù)量也不會(huì)過大。具體的元數(shù)據(jù)采集方法將參照OAI系統(tǒng)設(shè)計(jì)。
一個(gè)值得注意的問題就是網(wǎng)頁的重復(fù)存儲(chǔ)問題。在第三層中,Spider下載某個(gè)站點(diǎn)的網(wǎng)頁的同時(shí)也下載了一些不屬于此網(wǎng)站的網(wǎng)頁(終止標(biāo)志鏈接),那么在采集整合元數(shù)據(jù)時(shí)一些網(wǎng)頁可能出現(xiàn)多次。而根據(jù)第三層的下載規(guī)則,一個(gè)網(wǎng)頁重復(fù)出現(xiàn)的次數(shù)就是其他站點(diǎn)指向此網(wǎng)頁的鏈接數(shù)目,而這正是超鏈接分析技術(shù)中的網(wǎng)頁排名權(quán)值。在集中式體系中,出于成本等因素考慮,不可能將位于不同位置的同一個(gè)鏈接全部下載再統(tǒng)計(jì)被引用的次數(shù),而在分布式框架下則可用這種簡單的方式實(shí)現(xiàn)超鏈接分析技術(shù)的基本思想。
顯然此層的檢索接口應(yīng)采用超鏈接分析的方式進(jìn)行檢索結(jié)果的排序。這里只介紹基本原理,各層之間如何協(xié)調(diào)、最終的排名算法等將在系統(tǒng)的標(biāo)準(zhǔn)協(xié)議中制定。
第一層:分布式檢索系統(tǒng)
第一層將構(gòu)建覆蓋一個(gè)國家范圍的網(wǎng)頁搜索引擎,如果依然按照第二層那樣將全部的網(wǎng)頁元數(shù)據(jù)進(jìn)行集中存儲(chǔ),那么可能要存儲(chǔ)上十億張網(wǎng)頁數(shù)據(jù),系統(tǒng)設(shè)計(jì)依然比較困難。由于第二層的節(jié)點(diǎn)一般對(duì)應(yīng)于一個(gè)國家的主干網(wǎng),數(shù)目較少,因此可以考慮將第一層的搜索系統(tǒng)設(shè)計(jì)成分布式檢索系統(tǒng),那么系統(tǒng)將只有檢索接口,而沒有Spider,也沒有索引數(shù)據(jù)。
設(shè)計(jì)分布式檢索系統(tǒng)一般要解決三個(gè)主要問題:
1. 基本的數(shù)據(jù)傳輸協(xié)議,如TCP/IP
此系統(tǒng)中以SOAP協(xié)議為技術(shù)協(xié)議,SOAP協(xié)議基于HTTP協(xié)議而設(shè)計(jì),但在安全性等方面都有較大的改進(jìn)。
2. 子系統(tǒng)和主系統(tǒng)的具體的數(shù)據(jù)交換協(xié)議,如數(shù)據(jù)結(jié)構(gòu)、檢索語法等
系統(tǒng)的檢索協(xié)議設(shè)計(jì)以Web Service為基礎(chǔ)。Web Service以SOAP協(xié)議為基礎(chǔ)建立了一種高效的分布式系統(tǒng)框架。在設(shè)計(jì)協(xié)議時(shí)我們參考了SDLIP和Google的Web Service檢索服務(wù),用來定義相應(yīng)的數(shù)據(jù)格式和檢索語法等。此方法要求在第二層的節(jié)點(diǎn)提供統(tǒng)一的Web Service檢索服務(wù),而在第一層對(duì)這些檢索服務(wù)進(jìn)行索引。
3. 從子系統(tǒng)獲得檢索結(jié)果的合并方式
結(jié)果合并的關(guān)鍵依然是排序問題。在第二層中,我們用數(shù)據(jù)采集中網(wǎng)頁重復(fù)的次數(shù)當(dāng)作網(wǎng)頁的排名權(quán)值,而在第一層依然采用此方法,在執(zhí)行并行檢索時(shí)只要把同一個(gè)網(wǎng)頁在各個(gè)子系統(tǒng)的排名值簡單相加即可得到一個(gè)最終的排名權(quán)值。
第三層的搜索引擎工作原理同元搜索引擎基本一致,沒有自己的網(wǎng)頁數(shù)據(jù)庫,而僅索引其他搜索引擎的檢索接口。但在此系統(tǒng)中,各個(gè)子系統(tǒng)都嚴(yán)格遵循一個(gè)相同的協(xié)議,而且組織有序,因此性能要比現(xiàn)有的元搜索引擎優(yōu)良。此層的搜索引擎將提供一個(gè)國家范圍內(nèi)的網(wǎng)頁搜索,這已經(jīng)是本系統(tǒng)的最高級(jí),而由于語言的差異,它已經(jīng)基本覆蓋了大部分的檢索請(qǐng)求,如果確實(shí)要進(jìn)行多個(gè)國家范圍的并行搜索,只要設(shè)計(jì)一個(gè)簡單的系統(tǒng),調(diào)用多個(gè)最高層檢索接口即可。
由于新系統(tǒng)的每一個(gè)節(jié)點(diǎn)都是完整的搜索引擎,因此,怎樣使用戶能夠找到需要的搜索引擎是系統(tǒng)應(yīng)用的關(guān)鍵。我們一般采用面向?qū)ο蟮哪P蛯?duì)系統(tǒng)進(jìn)行描述,這里我們也利用此模型來描述此系統(tǒng)。我們?yōu)槠溥x擇一個(gè)基本的命名空間“DRIS”,整個(gè)系統(tǒng)的類樹如圖2所示。
所有的系統(tǒng)節(jié)點(diǎn)都位于命名空間“DRIS”下,并被視為子類。這些子類及其實(shí)現(xiàn)都在不同的服務(wù)器上實(shí)現(xiàn)。為了方便使用和管理整個(gè)系統(tǒng),我們定義了幾個(gè)基本規(guī)則:
1.所有的節(jié)點(diǎn)都通過標(biāo)準(zhǔn)Web Service的形式提供檢索服務(wù)。
2.所有的檢索服務(wù)都按照“繼承”的關(guān)系進(jìn)行組織,但這種關(guān)系的實(shí)現(xiàn)和標(biāo)準(zhǔn)的面向?qū)ο竽P吐杂胁煌?。低層的?jié)點(diǎn)通過引用高層節(jié)點(diǎn)的Web Service的形式進(jìn)行繼承。而對(duì)高層節(jié)點(diǎn)來說,其各個(gè)子類都位于不同的服務(wù)器上,高層節(jié)點(diǎn)并不知道其子類,因此將有一個(gè)專門的模塊用來索引低層節(jié)點(diǎn)的檢索接口。
3. Web Service通過URL鏈接來提供服務(wù),對(duì)用戶來說如何發(fā)現(xiàn)相應(yīng)搜索引擎服務(wù)的鏈接是應(yīng)用中的關(guān)鍵問題。例如,我們要尋找一個(gè)高校的網(wǎng)頁信息檢索服務(wù),那么就必須找到它的URL。如何做到呢?我們對(duì)搜索引擎服務(wù)器的位置進(jìn)行規(guī)定,即每個(gè)DRIS服務(wù)器都通過鏈接“DRIS.域名”向外提供標(biāo)準(zhǔn)Web Service檢索服務(wù),而此服務(wù)器上Web Service的主類名為“DRIS.反順序域名”。如華中科技大學(xué)的域名為“hust.edu.cn”,則DRIS服務(wù)器通過鏈接“DRIS.hust.edu.cn”向外提供校內(nèi)各種資源的檢索服務(wù),此服務(wù)的主類名為“DRIS. cn.edu.hust”。在新系統(tǒng)中,域名不僅起到DNS中的“導(dǎo)航”作用,而且是資源集合的一種“標(biāo)識(shí)”。
系統(tǒng)提供互聯(lián)網(wǎng)不同范圍的標(biāo)準(zhǔn)信息檢索服務(wù),這將為一些個(gè)性化信息檢索系統(tǒng)提供高質(zhì)量數(shù)據(jù)源。這些個(gè)性化搜索系統(tǒng)可以根據(jù)用戶的興趣愛好等信息自動(dòng)選擇合適的數(shù)據(jù)源并按照用戶需求對(duì)檢索結(jié)果進(jìn)行相應(yīng)的整理。由超鏈接分析等得到的排名權(quán)值僅作為一個(gè)參考值,檢索結(jié)果的最終排序會(huì)根據(jù)不同用戶的實(shí)際需求信息進(jìn)行調(diào)整。基于DNS的網(wǎng)頁搜索引擎將為此類研究提供一個(gè)高效的基礎(chǔ)數(shù)據(jù)平臺(tái)。
DRIS在覆蓋率、更新率以及檢索結(jié)果的準(zhǔn)確率等方面都較現(xiàn)有的搜索引擎有較大的改進(jìn),同時(shí)整個(gè)系統(tǒng)設(shè)計(jì)都基于比較成熟的技術(shù),可以滿足用戶的需求。
(作者單位為華中科技大學(xué)圖書館)