綜合數(shù)據(jù)檢索_第1頁
綜合數(shù)據(jù)檢索_第2頁
綜合數(shù)據(jù)檢索_第3頁
綜合數(shù)據(jù)檢索_第4頁
綜合數(shù)據(jù)檢索_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)綜合檢索技術(shù)黃金金1 王昭順1 戴桂蘭2 (1北京科技大學(xué)信息工程學(xué)院計(jì)算機(jī)系,100083 2清華大學(xué)信息技術(shù)研究院,100084 )摘要:本文提出了一種對結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)綜合檢索的軟件架構(gòu)方案。解決了以往由于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的性質(zhì)差異很大,一直以來采用不同的檢索方式進(jìn)行分開的數(shù)據(jù)檢索處理,對來自數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù)一般采用SQL語句進(jìn)行檢索,而對非結(jié)構(gòu)化數(shù)據(jù)則采取索引檢索的方式。但無論采用哪種檢索方式都會(huì)因無法兼顧到另外一種數(shù)據(jù)形式的檢索而造成檢索結(jié)果不全面、不完整的問題。關(guān)鍵詞: 結(jié)構(gòu)化數(shù)據(jù)檢索 非結(jié)構(gòu)化數(shù)據(jù)檢索 查詢語句適配器Abstract: A

2、 new kind of retrieval software architecture about structured data and Non-structured data was proposed in this paper. In the past, because of the great differences between them, we have to use different ways to deal with their data retrieval. We have been using SQL statements in the structured data

3、base search, and using index search in the non-structured data retrieval. But regardless of which search method was taken, it will bring the incomplete problem. Now the architecture resolve the problem.Keyword: structured data retrieval, Non-structured data retrieval, query sentences adapter引言數(shù)據(jù)類型大致

4、可分為兩種:一種是可以用相同的層次結(jié)構(gòu)來表示的數(shù)據(jù)即結(jié)構(gòu)化數(shù)據(jù),通常以數(shù)據(jù)表的形式存放在數(shù)據(jù)庫中;另外一種是以Txt文本、Word文本、Pdf文本等形式存放在FTP中,無法用統(tǒng)一的結(jié)構(gòu)來表示的非結(jié)構(gòu)化數(shù)據(jù)。本系統(tǒng)的特點(diǎn)在于實(shí)現(xiàn)了對結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的綜合檢索,適用于異構(gòu)數(shù)據(jù)同時(shí)存在的應(yīng)用環(huán)境。系統(tǒng)為用戶屏蔽了后端數(shù)據(jù)源的差異,只要輸入關(guān)鍵詞,就會(huì)自動(dòng)對數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行檢索,最終將經(jīng)過加亮處理的結(jié)果展示在用戶面前。本系統(tǒng)通過構(gòu)建查詢語句適配器的方法解決了數(shù)據(jù)庫在sql語句的兼容性不夠統(tǒng)一的問題,使得用戶可以同時(shí)對多個(gè)不同數(shù)據(jù)庫進(jìn)行查詢,無需在多數(shù)據(jù)庫間轉(zhuǎn)換查詢語句。同時(shí)提出一種摘要生成算

5、法,對異構(gòu)數(shù)據(jù)檢索結(jié)果進(jìn)行封裝處理,解決了傳統(tǒng)數(shù)據(jù)庫查詢通常簡單返回相應(yīng)字段的內(nèi)容,用戶無法對查詢關(guān)鍵詞進(jìn)行準(zhǔn)確定位的問題。本系統(tǒng)可以基于用戶輸入的關(guān)鍵詞顯示相應(yīng)字段的內(nèi)容,并對其進(jìn)行準(zhǔn)確定位,使用戶能夠迅速查看到有價(jià)值的信息。1 異構(gòu)數(shù)據(jù)綜合檢索系統(tǒng)異構(gòu)數(shù)據(jù)綜合檢索系統(tǒng)架構(gòu)方案的一種思路是:建立統(tǒng)一索引文件,不論對來自結(jié)構(gòu)化的數(shù)據(jù)還是來自非結(jié)構(gòu)化的數(shù)據(jù),索引工作都是在索引文件的基礎(chǔ)上進(jìn)行的。但統(tǒng)一建立索引會(huì)造成索引文件過于龐大,占用過多的硬盤空間,使系統(tǒng)看起來像一個(gè)笨重的數(shù)據(jù)倉庫。并且索引文件更新不及時(shí)、檢索結(jié)果實(shí)時(shí)性差等問題。本系統(tǒng)通過緩沖封裝用戶輸入的查詢條件,在未對結(jié)構(gòu)化數(shù)據(jù)建立索引的

6、情況下實(shí)現(xiàn)了異構(gòu)數(shù)據(jù)源中結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的綜合檢索。同時(shí)兼顧了檢索數(shù)據(jù)的安全性和實(shí)時(shí)性要求。圖 1綜合檢索系統(tǒng)總體構(gòu)建方案圖11 數(shù)據(jù)源連接層數(shù)據(jù)源連接層負(fù)責(zé)構(gòu)建系統(tǒng)檢索環(huán)境。對用戶屏蔽后端差異,無論檢索源是存放結(jié)構(gòu)化數(shù)據(jù)的普通數(shù)據(jù)庫還是存放非結(jié)構(gòu)化文檔的FTP,只要用戶正確的提供連接信息,系統(tǒng)將自動(dòng)連接上數(shù)據(jù)源。12 數(shù)據(jù)透明檢索層數(shù)據(jù)透明檢索層負(fù)責(zé)為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)提供統(tǒng)一、方便的檢索入口,用戶可以從模糊檢索、精確檢索、加減號限定檢索、邏輯檢索等方式中選擇符合自己檢索習(xí)慣的檢索方式。檢索層將對用戶輸入的檢索信息進(jìn)行規(guī)范(輸入字符的編碼轉(zhuǎn)換、過濾非法字符、識別特殊符號的含義)

7、,如果為復(fù)雜查詢輸入,則進(jìn)行查詢邏輯處理,生成復(fù)合查詢條件,連同用戶選擇的檢索范圍一同封裝起來作為通用的檢索輸入。后端檢索程序負(fù)責(zé)對系統(tǒng)封裝的檢索信息進(jìn)行處理,啟用多線程模式,由具體執(zhí)行線程去分辨底層依賴的數(shù)據(jù)源信息。根據(jù)依賴數(shù)據(jù)源的不同,以并發(fā)的方式傳遞檢索信息、向數(shù)據(jù)源發(fā)起訪問。13 檢索結(jié)果展示層系統(tǒng)提供了關(guān)鍵詞自動(dòng)定位加亮技術(shù),不論檢索結(jié)果來自結(jié)構(gòu)數(shù)據(jù)還是非結(jié)構(gòu)數(shù)據(jù),最終檢索結(jié)果將準(zhǔn)確、快速的定位關(guān)鍵詞在檢索源中出現(xiàn)的位置并以加亮的方式呈現(xiàn)在用戶面前。2 可擴(kuò)展異構(gòu)數(shù)據(jù)源連接異構(gòu)數(shù)據(jù)源有兩大類:(1)普通的數(shù)據(jù)庫,(2)存放非結(jié)構(gòu)文檔的FTP。系統(tǒng)在檢索數(shù)據(jù)時(shí)采用用戶名和密碼控制的數(shù)據(jù)

8、庫直接連接方式,有效避免了由于建立索引文件而帶來的檢索數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)不統(tǒng)一的問題,同時(shí)杜絕了非法用戶通過索引文件來查看數(shù)據(jù)庫中數(shù)據(jù)的現(xiàn)象。但又出于響應(yīng)時(shí)間的要求,對來自FTP的非結(jié)構(gòu)化數(shù)據(jù)檢索,系統(tǒng)采取全文快照、建立索引文件的方式進(jìn)行檢索。系統(tǒng)在處理數(shù)據(jù)庫連接和非結(jié)構(gòu)文檔檢索上都采用了可擴(kuò)展的結(jié)構(gòu)。l 數(shù)據(jù)庫在處理數(shù)據(jù)庫類型方面,目前本系統(tǒng)雖然只支持主流的數(shù)據(jù)庫,如oracle、sql server、mysql和access等,但對于其它數(shù)據(jù)庫或其它不同版本的數(shù)據(jù)庫只需要實(shí)現(xiàn)并提供相應(yīng)的接口類并添加相應(yīng)jdbc庫,即可實(shí)現(xiàn)連接擴(kuò)展。同時(shí)系統(tǒng)采取數(shù)據(jù)庫連接池技術(shù)來管理數(shù)據(jù)庫的連接操作以優(yōu)化

9、系統(tǒng)性能、減少用戶等待時(shí)間。l FTP在處理FTP連接方面,技術(shù)上采用sun公司提供的Ftp庫,但研究的難點(diǎn)是如何對FTP中存在的多種非結(jié)構(gòu)化文檔類型建立索引文件。目前本系統(tǒng)只支持對word、txt、pdf類型的文檔進(jìn)行全文檢索,但系統(tǒng)采用filter的架構(gòu)方式,只需要根據(jù)文檔后綴實(shí)現(xiàn)接口處理類,完成相應(yīng)的配置即可對該類文檔進(jìn)行解析,并建立索引,從而實(shí)現(xiàn)對該類型文檔的檢索。這兩種擴(kuò)展能力決定了系統(tǒng)具有了一個(gè)高性能的搜索系統(tǒng)應(yīng)該具備的易擴(kuò)展特性。3 異構(gòu)數(shù)據(jù)透明并發(fā)檢索技術(shù)異構(gòu)數(shù)據(jù)綜合檢索問題解決的關(guān)鍵點(diǎn)在于如何為用戶提供統(tǒng)一的檢索接口,使用戶感覺不到結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)之間的檢索差異。系統(tǒng)

10、采用透明檢索入口、并發(fā)底層處理的方式。3 1透明檢索入口 透明檢索入口的實(shí)現(xiàn)為用戶輸入進(jìn)行統(tǒng)一封裝處理,屏蔽了檢索數(shù)據(jù)源的差異,用戶只需明確自己的檢索范圍(由多個(gè)檢索源組成)即可。當(dāng)用戶每增加一個(gè)新的檢索范圍(用戶檢索范圍對于結(jié)構(gòu)化文檔而言精確到表、對于非結(jié)構(gòu)化文檔而言精確到索引域)時(shí),系統(tǒng)將自動(dòng)創(chuàng)建一個(gè) SearchElement,并保存根據(jù)用戶增加的檢索源名稱而從后臺程序中獲得的相應(yīng)檢索源連接信息和檢索的具體表或域。最終多個(gè)SearchElement集合為一個(gè)SearchInput,并連同用戶輸入關(guān)鍵詞一起封裝為統(tǒng)一查詢內(nèi)容發(fā)往后臺查詢實(shí)現(xiàn)部分。3 2底層并發(fā)處理如果根據(jù)SearchEle

11、ment中封裝的相應(yīng)數(shù)據(jù)源信息依次的執(zhí)行檢索任務(wù),那么所需的等待時(shí)間顯然是用戶無法忍受的。如何在最短的時(shí)間內(nèi)同時(shí)對多個(gè)不同的數(shù)據(jù)源發(fā)起檢索訪問呢,系統(tǒng)后臺程序中提供了對多線程檢索技術(shù)的支持。但通常,對于一個(gè)數(shù)據(jù)源發(fā)出過多的并發(fā)查詢請求會(huì)給服務(wù)端帶來很大的壓力,容易造成游標(biāo)數(shù)超過上限等問題,而且對查詢效率改善不大。此外在線程分配時(shí)應(yīng)該在不同數(shù)據(jù)源間盡量均衡,以使用戶盡快得到不同來源的數(shù)據(jù)。系統(tǒng)因此采用了基于優(yōu)先級隊(duì)列實(shí)現(xiàn)的線程調(diào)度算法。其中調(diào)度策略基于組實(shí)現(xiàn),一個(gè)組對應(yīng)于一個(gè)數(shù)據(jù)源。組間選擇基于優(yōu)先級策略,而組內(nèi)選擇則基于自然順序。優(yōu)先級基于兩部分構(gòu)成,一是組間優(yōu)先級由當(dāng)前組內(nèi)是否有查詢線程被調(diào)

12、度來決定,稱作P1;二是執(zhí)行優(yōu)先級由組內(nèi)未調(diào)用查詢線程的檢索任務(wù)數(shù)來決定,稱作P2。P1與P2的和決定了該組的優(yōu)先級,值越大優(yōu)先級越高。每當(dāng)組內(nèi)有檢索任務(wù)執(zhí)行,該組的P1不變,P2減一,其它組的P1加一。當(dāng)某個(gè)組內(nèi)有查詢返回時(shí),該組的優(yōu)先級數(shù)P1則再次提高,以保證每個(gè)數(shù)據(jù)源都有適當(dāng)?shù)脑L問壓力。后臺的具體線程會(huì)對檢索輸入條件中封裝的相應(yīng)數(shù)據(jù)源類型進(jìn)行判斷,在結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的檢索處理上,系統(tǒng)底層程序會(huì)采用不同的方式進(jìn)行。1) 結(jié)構(gòu)化數(shù)據(jù)檢索由于系統(tǒng)對來自數(shù)據(jù)庫的結(jié)構(gòu)化信息并未建立索引文件,而是基于sql語句實(shí)現(xiàn)檢索操作的,但不同數(shù)據(jù)庫都有自己的查詢語句接口,SQL語句的不兼容性決定了要想

13、同時(shí)對多源數(shù)據(jù)庫進(jìn)行查詢,就必須對不兼容的語句分別進(jìn)行處理。本系統(tǒng)提出了查詢語句適配器的概念,讓不同數(shù)據(jù)庫的查詢語句處理都實(shí)現(xiàn)同一個(gè)查詢接口類,當(dāng)進(jìn)行查詢操作時(shí),根據(jù)檢索式中數(shù)據(jù)源配置信息獲取相應(yīng)的查詢語句適配器,處理不同數(shù)據(jù)庫的語法差異,從而可以獲得相應(yīng)數(shù)據(jù)庫的字段轉(zhuǎn)換子句、關(guān)鍵詞查詢語句、翻頁語查詢句和記錄數(shù)查詢語句等(因?yàn)閿?shù)據(jù)庫類型的不同,這些語句在不同的庫中不能通用)。當(dāng)增加新類型的數(shù)據(jù)庫時(shí),只需實(shí)現(xiàn)相應(yīng)的查詢語句處理類,即增加新的查詢語句適配器,系統(tǒng)便可以提供對相應(yīng)數(shù)據(jù)庫的查詢操作支持。增加新適配器的工作可以全部在程序外部的配置文件中進(jìn)行,不必修改任何的程序代碼,因此很好的實(shí)現(xiàn)了系統(tǒng)

14、的可擴(kuò)展性。 圖 2查詢語句適配器構(gòu)造圖系統(tǒng)對所有類型數(shù)據(jù)庫查詢使用同樣的查詢接口,由查詢語句構(gòu)造工廠(QueryFactory)類,來決定當(dāng)前的數(shù)據(jù)檢索操作的后臺數(shù)據(jù)庫類型,進(jìn)而調(diào)用相應(yīng)得檢索語句實(shí)現(xiàn)類來實(shí)現(xiàn)檢索操作。2) 非結(jié)構(gòu)化數(shù)據(jù)檢索非結(jié)構(gòu)化數(shù)據(jù)的檢索是基于開源索引lunece構(gòu)建起來的,主要分為索引器和查詢器兩部分。首先為FTP 文檔建立自動(dòng)增量索引庫,企業(yè)FTP中的文檔會(huì)隨時(shí)增長或發(fā)生更改,相應(yīng)的索引庫也要發(fā)生反映出相應(yīng)的變化,才能為用戶查詢提供及時(shí)準(zhǔn)確的查詢內(nèi)容。為了應(yīng)對龐大的內(nèi)容給索引建立效率帶來的挑戰(zhàn),系統(tǒng)能夠定時(shí)探測到用戶已有文檔的更改或新加文檔信息,自動(dòng)重新建立索引。此外

15、,用戶可以對索引選項(xiàng)進(jìn)行配置,如索引建立的時(shí)間間隔,索引域信息(域名、分詞處理、存儲(chǔ)標(biāo)識及權(quán)重)進(jìn)行定義。自動(dòng)增量索引庫的建立分為調(diào)度器、下載器、解析器、索引器的建立四部分。調(diào)度器完成定時(shí)觸發(fā)、暫停索引服務(wù)、讀取配置信息(如新加入的FTP,新注入的文檔解析器,新配置的索引域參數(shù),和新觸發(fā)器選項(xiàng)等內(nèi)容)三項(xiàng)任務(wù)。下載器則根據(jù)FTP配置信息依次讀取FTP目錄內(nèi)容,檢查是否為支持文檔類型,如是,則判斷為新加文檔或已更改文檔,如是則將文檔下載到本地臨時(shí)文件夾。然后根據(jù)文檔類型信息和配置文件內(nèi)容獲取相應(yīng)的文檔解析器,對文檔內(nèi)容進(jìn)行解析,并返回相應(yīng)的文本格式內(nèi)容,亦可稱為快照內(nèi)容。最后索引器對文本內(nèi)容進(jìn)行

16、分詞處理(系統(tǒng)采用基于字典的雙向匹配中文分詞方法),根據(jù)相應(yīng)的索引域配置信息建立倒排索引文件,并啟動(dòng)索引服務(wù),接受用戶的索引請求。查詢部分則反向進(jìn)行,首先對用戶輸入進(jìn)行分詞,并根據(jù)用戶指定的檢索域向檢索接口查詢,其中檢索接口基于Index Reader實(shí)現(xiàn),能夠依據(jù)一定的查詢組合策略提供高效的查詢。4 異構(gòu)數(shù)據(jù)檢索摘要生成算法由于檢索結(jié)果來自不同的數(shù)據(jù)庫和索引文件,本系統(tǒng)對異構(gòu)數(shù)據(jù)源采取的完全不同的檢索方式,所以系統(tǒng)的難點(diǎn)之一就在于如何將各數(shù)據(jù)源返回的檢索結(jié)果按符合用戶查詢習(xí)慣的要求進(jìn)行統(tǒng)一封裝。本文提出了一種同時(shí)適應(yīng)于結(jié)構(gòu)數(shù)據(jù)和非結(jié)構(gòu)數(shù)據(jù)的自動(dòng)摘要生成算法。摘要生成算法基于以下目標(biāo):(1)高

17、亮顯示用戶所要查詢關(guān)鍵詞;(2)要顯示多個(gè)摘要片斷(excerpt);(3)顯示關(guān)鍵詞最為集中的片斷集合。這樣,用戶能夠直觀看到自己最關(guān)注部分的摘要內(nèi)容。基于以上目標(biāo),系統(tǒng)的摘要生成算法如下:高亮詞處理?;谟脩糨斎腙P(guān)鍵詞生成,在濾除非組合查詢詞之后,對其余查詢輸入進(jìn)行分詞處理,這樣保證用戶在輸入短句情況下也能得到提示。并得到高亮詞的集合,其中代表第n個(gè)需要高亮顯示的詞匯。檢索結(jié)果摘要生成流程圖如下所示:圖 3摘要生成流程圖5 綜合檢索系統(tǒng)的性能測試1) 實(shí)驗(yàn)輸入表 1 實(shí)驗(yàn)輸入表數(shù)據(jù)庫Oracle 9i 、Oracle 10g、SqlServer2000、Mysql5.0FTPSecondFTP檢索數(shù)據(jù)北京2) 實(shí)驗(yàn)輸出來自數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù)檢索結(jié)果顯示: 圖 4結(jié)構(gòu)化數(shù)據(jù)簡單檢索結(jié)果圖來自FTP的非結(jié)構(gòu)化數(shù)據(jù)檢索結(jié)果顯示:圖 5非結(jié)構(gòu)化數(shù)據(jù)簡單檢索結(jié)果圖3) 與其它搜索引擎比較:l 與網(wǎng)絡(luò)搜索引擎對比:大家熟悉的搜索引擎百度,實(shí)質(zhì)上是對網(wǎng)頁上的信息作了索引,放在多個(gè)服務(wù)器上,它的缺點(diǎn)是更新速度慢。我們經(jīng)常會(huì)遇到這樣的情況:當(dāng)?shù)玫揭粭l檢索結(jié)果時(shí),想打開它,網(wǎng)頁上卻顯示該頁不存在。這就說明百度服務(wù)器上的索引庫更新并不及時(shí)。l 與企業(yè)搜索引擎對比:大多數(shù)企業(yè)級的搜索引擎,只是針對企業(yè)內(nèi)部使用的特定數(shù)據(jù)庫。并不支持對

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論