摘 要:基于內(nèi)容的全文檢索技術(shù)廣泛用于全文數(shù)據(jù)庫中,為解決辦公自動化系統(tǒng)中大量文檔的快速檢索問題,將SQL Server全文索引技術(shù)運(yùn)用于辦公自動化系統(tǒng)開發(fā)中。首先介紹SQL Server全文檢索流程,然后將其運(yùn)用于辦公自動化系統(tǒng)文檔管理模塊公文搜索的實(shí)現(xiàn)中,全文檢索用戶界面層采用ASP.NET開發(fā),應(yīng)用業(yè)務(wù)層采用C#語言。
關(guān)鍵詞:全文索引;全文檢索;辦公自動化;B/S結(jié)構(gòu)
中圖法分類號:TP391.3文獻(xiàn)標(biāo)識碼:A
文章編號:1001—3695(2007)02—0222—03
近年來,高校的信息化建設(shè)發(fā)展迅速,各學(xué)校相繼進(jìn)行辦公自動化(Office Automation,OA)系統(tǒng)的開發(fā),其目標(biāo)就是利用校園網(wǎng)平臺,為管理部門提供現(xiàn)代化的日常辦公條件及豐富的綜合信息服務(wù),實(shí)現(xiàn)各類文檔管理自動化和辦公事務(wù)處理自動化。在辦公自動化系統(tǒng)中,存在大量文檔,因此對大量文檔實(shí)現(xiàn)快速檢索特別是基于內(nèi)容的全文檢索技術(shù)已成為辦公自動化系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵技術(shù)之一。
全文檢索技術(shù)是信息檢索的一個(gè)分支。它提供了全新的、強(qiáng)大的檢索功能,不僅可以實(shí)現(xiàn)傳統(tǒng)文獻(xiàn)檢索的全部功能,而且能直接根據(jù)數(shù)據(jù)資料的內(nèi)容進(jìn)行檢索,即所謂基于內(nèi)容的全文檢索,目前廣泛應(yīng)用于全文數(shù)據(jù)庫中[1]。實(shí)現(xiàn)全文檢索主要有兩種方法[2]:①直接對文章進(jìn)行匹配的方法,此方法效率較低;②全文建立倒排索引庫的方法,此方法可以提高檢索效率。因此,全文檢索技術(shù)的核心是將源文檔中所有的基本元素的出現(xiàn)信息記錄到索引庫中,這就是全文索引技術(shù)。目前對全文檢索技術(shù)的研究主要集中在全文索引技術(shù)、全文數(shù)據(jù)庫、搜索引擎及多媒體信息全文檢索上。一些軟件公司也紛紛推出全文檢索平臺軟件,國內(nèi)有代表性的如TRS系統(tǒng),國外有代表性的是微軟的SQL Server 2000。本文將SQL Server 2000全文索引技術(shù)運(yùn)用于辦公自動化系統(tǒng)開發(fā)中,以解決辦公自動化系統(tǒng)中大量電子文檔的有效檢索問題。首先介紹SQL Server全文檢索流程,然后將其運(yùn)用于辦公自動化系統(tǒng)開發(fā)中。系統(tǒng)基于B/S結(jié)構(gòu),具有三個(gè)邏輯層,即用戶層、業(yè)務(wù)層和數(shù)據(jù)層的設(shè)計(jì)模式,分層設(shè)計(jì)功能類,三層的接口集中設(shè)置在一個(gè)公用層中。用戶界面層采用ASP.NET開發(fā),環(huán)境和界面設(shè)置統(tǒng)一集中在頁面基類及環(huán)境配置文件里,應(yīng)用業(yè)務(wù)層采用C#語言,后臺數(shù)據(jù)庫采用SQL Server 2000數(shù)據(jù)庫系統(tǒng)。在文檔管理模塊的文檔搜索部分實(shí)現(xiàn)了全文檢索功能,方便了用戶對辦公自動化系統(tǒng)中所有文檔包括附件文檔進(jìn)行全文檢索。
1 SQL Server全文檢索流程
SQL Server 2000 提供一種增強(qiáng)的全文檢索服務(wù)[3],其建立全文索引進(jìn)行全文檢索。 SQL Server允許在后臺更新索引,可以在后臺使用全文索引向?qū)АQL Server 代理程序作業(yè)調(diào)度程序來調(diào)度全文索引更新。可根據(jù)數(shù)據(jù)和資源情況,在完全重建、基于時(shí)間戳的增量重建和更改跟蹤這三種方法中選擇一種來維護(hù)全文索引。使用全文檢索,可以對 Image 列中存儲的某些類型的數(shù)據(jù)進(jìn)行索引和查詢。全文檢索使用幾種支持的篩選之一來解釋這些數(shù)據(jù)并析取文本數(shù)據(jù),以便進(jìn)行索引和查詢。SQL Server 提供用于 .doc,.xls,.ppt,.txt 和 .htm 文件擴(kuò)展名的篩選。一旦對 Image 列進(jìn)行了索引,就可以使用全文檢索謂詞 CONTAINS 和 FREETEXT或者是CONTAINSTABLE和FREETEXTTABLE行集函數(shù)檢索該列。如果不知道包含搜索條件的列,全文檢索語句可以在全文索引中引用多列。
SQL Server 2000的全文檢索流程如圖1所示。應(yīng)用程序向SQL Server發(fā)送全文檢索語句;在接收全文檢索語句時(shí),使用全文提供程序通過Microsoft搜索服務(wù)模塊的搜索引擎檢索所需信息;查詢支持組件使用搜索引擎組件從全文檢索析取所請求的數(shù)據(jù),以行集的形式傳遞回全文提供程序;全文提供程序?qū)⒋诵屑祷亟o關(guān)系引擎,關(guān)系引擎和全文提供程序收到的所有行集進(jìn)行組合,以生成發(fā)送回客戶端的最終結(jié)果。
2 基于B/S結(jié)構(gòu)的辦公自動化系統(tǒng)
由于高校已有局域網(wǎng),并通過代理服務(wù)器與Internet高速互連,因此依靠自有Web應(yīng)用模式進(jìn)行系統(tǒng)建設(shè),即采用B/S結(jié)構(gòu)設(shè)計(jì)了校園辦公自動化系統(tǒng)。系統(tǒng)安裝和維護(hù)方便,并支持移動用戶通過Internet辦公,支持駐外的辦公點(diǎn)(分支機(jī)構(gòu))通過Internet訪問本系統(tǒng),即進(jìn)行異地辦公、遠(yuǎn)程辦公。本系統(tǒng)的實(shí)施方案目標(biāo)模式如圖2所示。本系統(tǒng)采用ASP.NET和SQL Server 2000開發(fā)。系統(tǒng)采用三個(gè)邏輯層即用戶層、業(yè)務(wù)層和數(shù)據(jù)層的設(shè)計(jì)模式,分層設(shè)計(jì)功能類,三層的接口集中設(shè)置在一個(gè)公用層里。用戶界面層采用ASP.NET開發(fā),環(huán)境和界面設(shè)置統(tǒng)一集中在頁面基類及環(huán)境配置文件中,應(yīng)用業(yè)務(wù)層采用C#語言,后臺數(shù)據(jù)庫采用SQL Server 2000數(shù)據(jù)庫系統(tǒng)[4,5]。
系統(tǒng)結(jié)構(gòu)如圖3所示。系統(tǒng)分為框架模塊、文檔管理、公共信息管理和人事管理四個(gè)模塊。各模塊功能如下:
(1)人事管理模塊,進(jìn)行教工基本信息、教師檔案、人事變動信息、部門信息、獎懲信息和教研信息的管理。
(2)文檔管理,模仿微軟的資源管理器,進(jìn)行公文常規(guī)管理、公文搜索管理和公文回收站管理。公文搜索完成各種級別文檔的搜索以及全文檢索;待刪除的東西放入回收站區(qū),必要時(shí)可恢復(fù),防止誤刪除;常規(guī)文檔管理可以對公文按部門分類并設(shè)置限制權(quán)限,完成上傳/下載等常規(guī)公文流轉(zhuǎn)的處理。
(3)公共信息模塊,包括各部門的網(wǎng)上信息發(fā)布、公告發(fā)布,部門重要文件的發(fā)布下載等管理。
(4)框架模塊,為以上各模塊提供標(biāo)準(zhǔn)Web層接口界面,執(zhí)行安全驗(yàn)證,為各頁面提供頁面基本類。
3 全文檢索在文檔管理模塊中的實(shí)現(xiàn)
文檔管理模塊是辦公自動化系統(tǒng)中最重要的模塊,設(shè)計(jì)時(shí)模仿Windows的資源管理器的功能和界面特點(diǎn),包括文檔管理、回收站和文檔搜索三部分。公文搜索是一項(xiàng)重要的功能,特別是當(dāng)信息量極大時(shí),對效率和準(zhǔn)確性要求很高。此搜索模仿Windows,采用了多種搜索方式供用戶選擇。對辦公自動化系統(tǒng)中所有部門上傳的文檔,可以按文件名搜索、按創(chuàng)建者搜索、按關(guān)鍵字搜索、按文件日期搜索,特別是由于采用了SQL Server 2000的全文檢索功能,可以根據(jù)附件內(nèi)容進(jìn)行全文搜索,因此實(shí)現(xiàn)了更實(shí)用和功能強(qiáng)大的信息檢索。
3.1 建立全文索引
為實(shí)現(xiàn)全文檢索,必須在辦公自動化系統(tǒng)數(shù)據(jù)庫上建立全文索引。SQL Server 2000中增加了一些系統(tǒng)存儲過程用于建立全文索引和維護(hù)全文索引。使用系統(tǒng)存儲過程創(chuàng)建全文索引的具體步驟如下:①啟動數(shù)據(jù)庫的全文處理功能(sp_fulltext_database) ;②建立全文目錄(sp_fulltext_catalog);③在全文目錄中注冊需要全文索引的表(sp_fulltext_table);④指出表中需要全文檢索的列名(sp_fulltext_column);⑤為表創(chuàng)建全文索引(sp_fulltext_table);⑥填充全文目錄(sp_fulltext_catalog)。
當(dāng)建立全文索引數(shù)據(jù)庫的相關(guān)表的內(nèi)容更新時(shí),全文索引也必須作相應(yīng)的更新。維護(hù)全文索引有三種方式:①完全重建。重新掃描所有行,徹底重建全文索引,可通過 SQL Server 代理按調(diào)度進(jìn)行完全重建。②基于時(shí)間戳的增量重建。重新掃描那些從上一次完全重建或增量重建以來曾更改過的行,要求在表上有Timestamp 列,不更新時(shí)間戳的更改(如 WRITETEXT 和 UPDATETEXT)是檢測不到的。③更改跟蹤。維護(hù)一份對索引數(shù)據(jù)的全部更改的列表,可以用這些更改立即更新全文索引,也可以按調(diào)度進(jìn)行,或者使用后臺更新索引選項(xiàng)在更改一發(fā)生時(shí)便更新。具體選擇哪種方法,可根據(jù)可用內(nèi)存、數(shù)據(jù)更改的數(shù)量和速度、可用磁盤空間的大小以及當(dāng)前全文索引的重要性等因素綜合選擇。
3.2 建立文檔管理模塊全文檢索存儲過程
為了提高全文檢索的效率,本系統(tǒng)采用自定義存儲過程的方式實(shí)現(xiàn)全文檢索功能,然后客戶端程序通過一定方式調(diào)用該存儲過程。存儲過程fmSearchDoc實(shí)現(xiàn)全文檢索的功能,文件的附件是以二進(jìn)制形式保存在數(shù)據(jù)庫中的,通過全文檢索的功能可以對附件的內(nèi)容進(jìn)行檢索。代碼如下:
3.3 基于Web的全文檢索界面
為方便用戶檢索,系統(tǒng)采用ASP.NET建立了一個(gè)基于Web界面的全文檢索平臺。用戶只需將檢索詞提交給Web服務(wù)器,服務(wù)器調(diào)用全文檢索的存儲過程對SQL Server 2000數(shù)據(jù)庫進(jìn)行查詢,并將檢索結(jié)果以Web頁面的方式返回給用戶。同時(shí),SQL Server 2000的全文檢索服務(wù)可以支持布爾檢索和加權(quán)檢索等高級檢索,用ASP.NET可以實(shí)現(xiàn)這些檢索功能的界面。圖4和圖5分別為辦公自動化系統(tǒng)文檔管理模塊用戶界面和全文檢索用戶界面。
4 結(jié)束語
全文檢索技術(shù)是開發(fā)各類全文數(shù)據(jù)庫、文摘數(shù)據(jù)庫、搜索引擎和辦公自動化系統(tǒng)等的關(guān)鍵技術(shù)之一。本文詳細(xì)介紹了如何利用SQL Server 2000的全文搜索功能實(shí)現(xiàn)辦公自動化系統(tǒng)中公文的全文搜索功能,提供了基于Web的用戶界面,實(shí)現(xiàn)了對多種類型文檔快速而有效的全文檢索功能。有待進(jìn)一步解決的問題是如何設(shè)計(jì)較好的全文索引更新方案及如何對多媒體信息進(jìn)行全文檢索。
本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。