專(zhuān)利名稱(chēng):基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)檢索技術(shù),具體涉及一種基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng),該系統(tǒng)是對(duì)互聯(lián)網(wǎng)搜索引擎的改進(jìn),能夠?qū)?shí)施了訪(fǎng)問(wèn)控制的網(wǎng)站資源進(jìn)行爬行,根據(jù)各個(gè)網(wǎng)站對(duì)用戶(hù)的授權(quán),用戶(hù)可檢索出其權(quán)限許可范圍內(nèi)的所有資源。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和B/S結(jié)構(gòu)的廣泛應(yīng)用,越來(lái)越多的企業(yè)和組織用網(wǎng)站的形式發(fā)布消息和資源、實(shí)現(xiàn)業(yè)務(wù)流程,這種方式極大地方便了管理者對(duì)資源的管理和用戶(hù)對(duì)資源的訪(fǎng)問(wèn)和使用。不同的企業(yè)或組織為了自身的利益或其他目的對(duì)其網(wǎng)站中的資源實(shí)施訪(fǎng)問(wèn)控制,將不同資源的訪(fǎng)問(wèn)權(quán)限授予不同的用戶(hù)群體。訪(fǎng)問(wèn)控制技術(shù)在提高資源安全性的同時(shí),也為搜索引擎對(duì)資源的爬行設(shè)置了障礙。原本可以很方便爬行到的資源,經(jīng)過(guò)訪(fǎng)問(wèn)控制后成為不可爬行的資源。如果需要授權(quán)才能訪(fǎng)問(wèn)的資源數(shù)量非常龐大,而且有較大的用戶(hù)群體在不同的網(wǎng)站經(jīng)過(guò)授權(quán),如果缺乏有效的搜索手段,將會(huì)嚴(yán)重影響這個(gè)用戶(hù)群體對(duì)授權(quán)資源的利用。
傳統(tǒng)搜索系統(tǒng)執(zhí)行流程包含以下步驟(1)爬行器對(duì)所有的網(wǎng)站資源進(jìn)行爬行,獲取公共資源。
(2)對(duì)所獲得的資源通過(guò)分詞等技術(shù)建立全文索引文件,并將所建立的全文索引文件置于服務(wù)器端。
(3)當(dāng)用戶(hù)查詢(xún)資源時(shí),搜索程序通過(guò)分詞技術(shù)將用戶(hù)查詢(xún)條件分解為索引項(xiàng)。
(4)在已建立的索引文件中進(jìn)行搜索,并將搜索到的結(jié)果反饋給用戶(hù)。
首先,傳統(tǒng)搜索引擎系統(tǒng)無(wú)法采集到受控的資源,比如不同權(quán)限的用戶(hù)可訪(fǎng)問(wèn)不同的資源。其次,傳統(tǒng)搜索引擎系統(tǒng)注重通用性,不會(huì)獲取用戶(hù)身份,因此無(wú)法根據(jù)用戶(hù)的不同而返回不同的搜索結(jié)果。而這兩點(diǎn)在大多數(shù)網(wǎng)站例如企業(yè)或組織的網(wǎng)站中是非常重要的。
美國(guó)雅虎公司和IBM公司聯(lián)合推出用于在計(jì)算機(jī)桌面和互聯(lián)網(wǎng)上搜索信息的OmniFind搜索引擎,是專(zhuān)為滿(mǎn)足企業(yè)信息搜索需求而提供的企業(yè)搜索引擎。OmniFind可以提供各類(lèi)信息資源的搜索服務(wù)包括文件服務(wù)器、內(nèi)容管理系統(tǒng)、各類(lèi)關(guān)系型數(shù)據(jù)庫(kù)、Domino系統(tǒng)、網(wǎng)站等不同來(lái)源中的信息,自動(dòng)完成數(shù)據(jù)獲取、格式轉(zhuǎn)換、自動(dòng)分詞及全文索引和信息分類(lèi)。針對(duì)企業(yè)對(duì)信息安全的要求,OmniFind提供了全局信息訪(fǎng)問(wèn)控制能力,保障信息搜索的安全性。然而OmniFind是通過(guò)在文檔中添加安全標(biāo)記,標(biāo)示安全級(jí)別來(lái)實(shí)現(xiàn)檢索信息的訪(fǎng)問(wèn)控制功能,改動(dòng)量非常大,且文檔級(jí)別不容易確定,無(wú)法實(shí)現(xiàn)復(fù)雜訪(fǎng)問(wèn)控制環(huán)境下信息訪(fǎng)問(wèn)、檢索的目的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng),該系統(tǒng)不僅能夠?qū)W(wǎng)絡(luò)中受安全訪(fǎng)問(wèn)控制下的文件進(jìn)行信息檢索,還能夠?qū)Π踩L(fǎng)問(wèn)控制下的資源進(jìn)行分析,并通過(guò)用戶(hù)信息建立索引,自動(dòng)實(shí)現(xiàn)對(duì)復(fù)雜訪(fǎng)問(wèn)控制環(huán)境下受控資源的檢索與訪(fǎng)問(wèn)。
本發(fā)明所述的一種基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng),其特征在于該系統(tǒng)包括數(shù)據(jù)庫(kù)服務(wù)器、單點(diǎn)登錄模塊、用戶(hù)信息描述模塊、爬行器模塊、查詢(xún)檢索模塊和索引庫(kù);數(shù)據(jù)庫(kù)服務(wù)器用于接受管理員通過(guò)用戶(hù)信息描述模塊提供的接口提交的資源站點(diǎn)信息、用戶(hù)信息以及用戶(hù)組信息并進(jìn)行存儲(chǔ),數(shù)據(jù)庫(kù)服務(wù)器為爬行器模塊提供爬行器登錄所需的用戶(hù)組的代表用戶(hù)名、密碼以及用戶(hù)組信息;數(shù)據(jù)庫(kù)服務(wù)器將單點(diǎn)登錄模塊提供的用戶(hù)名和密碼信息與數(shù)據(jù)庫(kù)中存放的用戶(hù)名密碼信息進(jìn)行比對(duì),并反饋信息;單點(diǎn)登錄模塊用于接受用戶(hù)或爬行器的輸入信息并提交至數(shù)據(jù)庫(kù)服務(wù)器,并接收其反饋的認(rèn)證結(jié)果,如果認(rèn)證通過(guò),單點(diǎn)登錄模塊根據(jù)用戶(hù)或爬行器請(qǐng)求的頁(yè)面鏈接將該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)發(fā)送給查詢(xún)檢索模塊、用戶(hù)信息描述模塊以及各個(gè)受控資源網(wǎng)站;
用戶(hù)信息描述模塊為管理員提供一個(gè)對(duì)用戶(hù)信息進(jìn)行描述的接口,將用戶(hù)信息保存至數(shù)據(jù)庫(kù)服務(wù)器,并接收單點(diǎn)登錄模塊發(fā)送的認(rèn)證通過(guò)標(biāo)識(shí)以及代表用戶(hù)權(quán)限的用戶(hù)組信息;爬行器模塊從數(shù)據(jù)庫(kù)服務(wù)器獲取不同用戶(hù)組的代表用戶(hù)信息,并提交給單點(diǎn)登錄模塊進(jìn)行登錄,如果登錄成功,爬行器模塊根據(jù)其權(quán)限在單點(diǎn)登錄模塊控制下的資源網(wǎng)站進(jìn)行爬行和解析,獲取各網(wǎng)站擁有的網(wǎng)絡(luò)資源,建立索引,存放在索引庫(kù);查詢(xún)檢索模塊為用戶(hù)提供搜索引擎的使用界面,并提供搜索服務(wù),查詢(xún)檢索模塊在單點(diǎn)登錄模塊的控制之下,在認(rèn)證通過(guò)時(shí),接收單點(diǎn)登錄模塊發(fā)送的認(rèn)證通過(guò)標(biāo)識(shí)以及用戶(hù)組信息,獲取用戶(hù)的訪(fǎng)問(wèn)權(quán)限,查詢(xún)檢索模塊接受來(lái)自用戶(hù)的查詢(xún)關(guān)鍵字,對(duì)其進(jìn)行分詞并根據(jù)獲取的用戶(hù)權(quán)限對(duì)索引庫(kù)進(jìn)行檢索并接收返回結(jié)果;索引庫(kù)根據(jù)爬行器模塊獲取的各種網(wǎng)頁(yè)資源及用戶(hù)組信息建立索引,并進(jìn)行合并存儲(chǔ),根據(jù)查詢(xún)檢索模塊提交的查詢(xún)請(qǐng)求在索引中進(jìn)行快速檢索排序,反饋相應(yīng)的檢索結(jié)果。
本發(fā)明提出的基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng)部署后除了能夠完成基本的信息搜索功能,而且還可以對(duì)實(shí)施了安全訪(fǎng)問(wèn)控制的資源進(jìn)行搜索,且不需要對(duì)信息源文檔進(jìn)行修改。該系統(tǒng)能夠?qū)W(wǎng)絡(luò)中受安全訪(fǎng)問(wèn)控制的各種文件(包括HTML、XML、DOC、PDF、TXT等)進(jìn)行信息檢索,為用戶(hù)提供安全、高效、完整的信息服務(wù)。本發(fā)明系統(tǒng)在用戶(hù)信息描述模塊和單點(diǎn)登錄模塊的支持下,通過(guò)爬行器自動(dòng)完成資源權(quán)限的確定。從而屏蔽具體應(yīng)用環(huán)境中復(fù)雜訪(fǎng)問(wèn)控制策略的具體實(shí)現(xiàn)方式。由于對(duì)受控資源的安全控制嚴(yán)格,普通的搜索引擎系統(tǒng)無(wú)法獲取受控資源內(nèi)容,基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng)不僅能夠根據(jù)資源描述獲取受控資源,還能夠根據(jù)用戶(hù)角色返回與其對(duì)應(yīng)權(quán)限相應(yīng)的查詢(xún)結(jié)果,能夠滿(mǎn)足大多數(shù)企業(yè)級(jí)安全搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)要求。具體而言,本發(fā)明具有如下優(yōu)點(diǎn)查全率高本系統(tǒng)針對(duì)不同的文檔進(jìn)行不同方式的解析,從而獲取各種文檔的文本內(nèi)容。因此本系統(tǒng)能夠?qū)W(wǎng)絡(luò)中的絕大部分文檔進(jìn)行分析并建立索引,可以為用戶(hù)提供信息量豐富、完整的搜索服務(wù)。
安全性強(qiáng)本系統(tǒng)通過(guò)對(duì)用戶(hù)信息的簡(jiǎn)單描述,將用戶(hù)分成權(quán)限相同的用戶(hù)組,使爬行器在爬行過(guò)程中獲取不同用戶(hù)組的權(quán)限。因此,爬行器在對(duì)資源進(jìn)行分析的時(shí)候能夠通過(guò)資源是否可訪(fǎng)問(wèn)來(lái)自動(dòng)判斷該資源的權(quán)限(能夠被訪(fǎng)問(wèn)則具有該用戶(hù)組的權(quán)限,否則不具有)。然后爬行器根據(jù)用戶(hù)組建立不同的索引,用來(lái)區(qū)分不同權(quán)限的索引文件。在爬行器建立的分組索引的基礎(chǔ)上,基于訪(fǎng)問(wèn)控制的搜索引擎系統(tǒng)能夠通過(guò)分析登錄用戶(hù)的權(quán)限,即判斷該用戶(hù)所屬用戶(hù)組,為用戶(hù)提供相應(yīng)權(quán)限的檢索服務(wù),從而實(shí)現(xiàn)安全的信息搜索。
部署比較簡(jiǎn)便本系統(tǒng)要求應(yīng)用環(huán)境基于單點(diǎn)登錄系統(tǒng)構(gòu)造,如果資源網(wǎng)站應(yīng)用環(huán)境本身具備了單點(diǎn)登錄模塊,則本系統(tǒng)不需要再進(jìn)行單點(diǎn)登錄模塊的部署,否則,只需要在資源網(wǎng)站的服務(wù)器安裝單點(diǎn)登錄客戶(hù)端即可;對(duì)于用戶(hù)信息模塊的部署,需要向各網(wǎng)站管理員提供描述本網(wǎng)站用戶(hù)信息的接口,各網(wǎng)站管理員可以通過(guò)該接口對(duì)本網(wǎng)站用戶(hù)作簡(jiǎn)單的分組;其他模塊不需要對(duì)資源網(wǎng)站進(jìn)行任何改造。
圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖。
圖2是本發(fā)明系統(tǒng)中用戶(hù)信息模塊結(jié)構(gòu)示意圖。
圖3是本發(fā)明系統(tǒng)中數(shù)據(jù)庫(kù)服務(wù)器中用戶(hù)信息表結(jié)構(gòu)。
圖4是本發(fā)明系統(tǒng)中數(shù)據(jù)庫(kù)服務(wù)器中用戶(hù)組信息表結(jié)構(gòu)。
圖5是本發(fā)明系統(tǒng)中數(shù)據(jù)庫(kù)服務(wù)器中站點(diǎn)信息表結(jié)構(gòu)。
圖6是本發(fā)明系統(tǒng)中爬行器模塊結(jié)構(gòu)示意圖。
圖7是本發(fā)明系統(tǒng)中爬行器工作流程圖。
圖8是本發(fā)明系統(tǒng)中查詢(xún)檢索模塊結(jié)構(gòu)示意圖。
圖9是本發(fā)明系統(tǒng)的查詢(xún)檢索工作流程圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明系統(tǒng)包括數(shù)據(jù)庫(kù)服務(wù)器100、單點(diǎn)登錄模塊200、用戶(hù)信息描述模塊300、爬行器模塊400、查詢(xún)檢索模塊500和索引庫(kù)600。
數(shù)據(jù)庫(kù)服務(wù)器100接受管理員通過(guò)用戶(hù)信息描述模塊300提供的接口提交的資源站點(diǎn)信息、用戶(hù)信息以及用戶(hù)組信息并進(jìn)行存儲(chǔ)。數(shù)據(jù)庫(kù)服務(wù)器100為爬行器模塊400提供爬行器登錄所需的用戶(hù)組的代表用戶(hù)名、密碼以及用戶(hù)組信息。單點(diǎn)登錄模塊200將用戶(hù)使用單點(diǎn)登錄時(shí)輸入的用戶(hù)名和密碼提交至數(shù)據(jù)庫(kù)服務(wù)器100,數(shù)據(jù)庫(kù)服務(wù)器100將用戶(hù)名和密碼信息與數(shù)據(jù)庫(kù)中存放的用戶(hù)名密碼信息進(jìn)行比對(duì),如果用戶(hù)名和密碼匹配則向單點(diǎn)登錄模塊200返回權(quán)限認(rèn)證通過(guò)信息,否則返回登錄失敗信息。本發(fā)明可以采用任何商用數(shù)據(jù)庫(kù)實(shí)現(xiàn)資源描述信息的保存。
在數(shù)據(jù)庫(kù)服務(wù)器100的支持下,單點(diǎn)登錄模塊200能夠根據(jù)數(shù)據(jù)庫(kù)中存放的用戶(hù)信息,為系統(tǒng)中其他應(yīng)用模塊如爬行器模塊400、查詢(xún)檢索模塊500、用戶(hù)信息描述模塊300以及部署的資源網(wǎng)站提供用戶(hù)認(rèn)證服務(wù)。單點(diǎn)登錄模塊200通過(guò)登錄界面獲取用戶(hù)輸入的用戶(hù)名和密碼。同樣,爬行器模塊400通過(guò)程序?qū)臄?shù)據(jù)庫(kù)獲取的用戶(hù)名密碼信息遞交給單點(diǎn)登錄模塊200。然后單點(diǎn)登錄模塊200將從用戶(hù)或爬行器接收到的用戶(hù)名密碼信息交給數(shù)據(jù)庫(kù)服務(wù)器100進(jìn)行認(rèn)證,并從數(shù)據(jù)庫(kù)服務(wù)器100返回認(rèn)證結(jié)果(認(rèn)證通過(guò)或認(rèn)證失敗)。一旦認(rèn)證通過(guò),單點(diǎn)登錄模塊200就要根據(jù)用戶(hù)或爬行器請(qǐng)求的頁(yè)面鏈接將該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)發(fā)送給查詢(xún)檢索模塊500、用戶(hù)信息描述模塊300以及受控的各個(gè)資源網(wǎng)站。例如如果用戶(hù)登錄時(shí)是在請(qǐng)求通過(guò)查詢(xún)檢索模塊500提供搜索引擎服務(wù),則單點(diǎn)登錄模塊200向查詢(xún)檢索模塊500發(fā)送用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí),同樣,如果用戶(hù)是一個(gè)管理員用戶(hù),并希望對(duì)用戶(hù)信息進(jìn)行描述,則單點(diǎn)登錄模塊200向用戶(hù)信息描述模塊發(fā)送用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)。這里值得一提的是,單點(diǎn)登錄只需要用戶(hù)登錄一次,因此一旦認(rèn)證通過(guò),用戶(hù)再向不同模塊發(fā)送請(qǐng)求時(shí),單點(diǎn)登錄模塊200都不會(huì)再次向用戶(hù)詢(xún)問(wèn)用戶(hù)名密碼,而是在后臺(tái)直接發(fā)送認(rèn)證通過(guò)標(biāo)識(shí)。
單點(diǎn)登錄模塊200負(fù)責(zé)用戶(hù)身份認(rèn)證,通過(guò)認(rèn)證的用戶(hù)為合法用戶(hù);單點(diǎn)登錄模塊200所控制的單點(diǎn)登錄客戶(hù)端部署在受控資源的用戶(hù)信息描述模塊300、查詢(xún)檢索模塊500和各個(gè)資源網(wǎng)站;訪(fǎng)問(wèn)受單點(diǎn)登錄模塊200控制的節(jié)點(diǎn)受控資源的用戶(hù)必須經(jīng)過(guò)單點(diǎn)登錄服務(wù)器端的安全認(rèn)證。本發(fā)明可以采用不同的架構(gòu)實(shí)現(xiàn)單點(diǎn)登錄(1)集中式認(rèn)證服務(wù)器的方式建立集中式認(rèn)證服務(wù)器并將單點(diǎn)登錄客戶(hù)端部署在各個(gè)資源網(wǎng)站中即可實(shí)現(xiàn)單點(diǎn)登錄。服務(wù)器端維護(hù)全局用戶(hù)名密碼表以實(shí)現(xiàn)統(tǒng)一認(rèn)證。(2)用戶(hù)密碼映射方式在單點(diǎn)登錄服務(wù)器維護(hù)一張用戶(hù)映射表,將同一用戶(hù)在不同資源網(wǎng)站的不同用戶(hù)名進(jìn)行映射,即可實(shí)現(xiàn)單點(diǎn)登錄功能。
用戶(hù)信息描述模塊300為管理員提供一個(gè)對(duì)用戶(hù)信息進(jìn)行描述的接口。管理員通過(guò)用戶(hù)信息描述模塊300除了能夠?qū)W(wǎng)站信息進(jìn)行注冊(cè),以及對(duì)用戶(hù)詳細(xì)信息進(jìn)行錄入,還能夠?qū)τ脩?hù)與管理員管理范圍內(nèi)的用戶(hù)組進(jìn)行匹配,并將這些信息保存至數(shù)據(jù)庫(kù)服務(wù)器100。同時(shí),用戶(hù)信息描述模塊300在單點(diǎn)登錄模塊200的控制之下,一旦用戶(hù)或爬行器認(rèn)證通過(guò),單點(diǎn)登錄模塊200將向用戶(hù)信息描述模塊300發(fā)送認(rèn)證通過(guò)標(biāo)識(shí)以及代表用戶(hù)權(quán)限的用戶(hù)組信息,以保證用戶(hù)或爬行器能夠擁有訪(fǎng)問(wèn)用戶(hù)信息描述模塊300的權(quán)限。
爬行器模塊400用于建立索引庫(kù)600。爬行器模塊從數(shù)據(jù)庫(kù)服務(wù)器100獲取不同用戶(hù)組的代表用戶(hù)信息(由于同一用戶(hù)組中的用戶(hù)在同一網(wǎng)站具有相同的權(quán)限,即可以使用代表用戶(hù)來(lái)表示該用戶(hù)組的用戶(hù)),其中包括站點(diǎn)ID、用戶(hù)組ID,用戶(hù)名、密碼等信息。爬行器模塊400從數(shù)據(jù)庫(kù)服務(wù)器100獲取用戶(hù)登錄所需信息后將用戶(hù)名密碼信息交給單點(diǎn)登錄模塊200進(jìn)行認(rèn)證。如果認(rèn)證成功,單點(diǎn)登錄根據(jù)用戶(hù)權(quán)限向爬行器開(kāi)放在單點(diǎn)登錄模塊200控制下的資源網(wǎng)站,使其能夠爬行、解析從而獲取各網(wǎng)站擁有的網(wǎng)絡(luò)資源。對(duì)各種格式的網(wǎng)頁(yè)(如HTML、ASP、JSP等)進(jìn)行讀取、分析并將分析結(jié)果建立索引存放至索引庫(kù)600。對(duì)于無(wú)法直接通過(guò)網(wǎng)頁(yè)分析讀取的文件(如PDF、DOC等),爬行器首先將其下載至本地,然后使用特定的索引器進(jìn)行解析并建立索引,最后對(duì)來(lái)自不同用戶(hù)組的索引進(jìn)行合并并存放至索引庫(kù)600。
查詢(xún)檢索模塊500為用戶(hù)提供搜索引擎的使用界面并提供完備的搜索服務(wù)。查詢(xún)檢索模塊500負(fù)責(zé)從用戶(hù)獲取終端用戶(hù)的查詢(xún)關(guān)鍵字,并對(duì)關(guān)鍵字進(jìn)行分詞等處理,然后將分詞后的關(guān)鍵字在索引庫(kù)600中進(jìn)行檢索并獲取返回的查詢(xún)結(jié)果,最后將查詢(xún)結(jié)果返回給終端用戶(hù),完成搜索服務(wù)。同時(shí),查詢(xún)檢索模塊500在單點(diǎn)登錄模塊200的控制之下,一旦用戶(hù)或爬行器認(rèn)證通過(guò),單點(diǎn)登錄模塊200將向查詢(xún)檢索模塊500發(fā)送認(rèn)證通過(guò)標(biāo)識(shí)以及用戶(hù)組信息,以確定用戶(hù)或爬行器對(duì)查詢(xún)檢索模塊500的訪(fǎng)問(wèn)權(quán)限。
索引庫(kù)600用于存儲(chǔ)由爬行器模塊400獲取的各種網(wǎng)頁(yè)資源及用戶(hù)組信息所建立的索引,索引庫(kù)所存儲(chǔ)的是各用戶(hù)組索引的合并結(jié)果。此外,索引庫(kù)600還根據(jù)查詢(xún)檢索模塊500提交的查詢(xún)請(qǐng)求在索引中進(jìn)行快速檢索和排序,并返回查詢(xún)檢索模塊500對(duì)應(yīng)的結(jié)果。
整個(gè)基于訪(fǎng)問(wèn)控制的搜索引擎系統(tǒng)模塊功能描述以及模塊間的數(shù)據(jù)流傳遞細(xì)節(jié)如下整個(gè)系統(tǒng)流程包括(1)對(duì)用戶(hù)信息進(jìn)行描述,其過(guò)程包括用戶(hù)描述流程針對(duì)的對(duì)象是管理員用戶(hù),管理員用戶(hù)通過(guò)系統(tǒng)提供的接口對(duì)具有權(quán)限的用戶(hù)進(jìn)行描述,具體流程如下(1.1)管理員使用單點(diǎn)登錄模塊200輸入用戶(hù)名密碼。
(1.2)單點(diǎn)登錄模塊200通過(guò)數(shù)據(jù)庫(kù)服務(wù)器100提供的用戶(hù)名和密碼進(jìn)行比對(duì),如果認(rèn)證通過(guò),則用單點(diǎn)登錄模塊200從數(shù)據(jù)庫(kù)服務(wù)器100獲取該管理員用戶(hù)的詳細(xì)信息(包括用戶(hù)組ID等),并對(duì)其開(kāi)放管理員權(quán)限(即可對(duì)該管理員所屬網(wǎng)站內(nèi)的用戶(hù)權(quán)限進(jìn)行描述與修改),進(jìn)入步驟(1.3),否則返回登錄失敗信息,退出流程。
(1.3)管理員通過(guò)用戶(hù)信息描述模塊300向數(shù)據(jù)庫(kù)服務(wù)器100遞交用戶(hù)信息(包括用戶(hù)名、密碼、用戶(hù)所在網(wǎng)站、用戶(hù)組等),并在數(shù)據(jù)庫(kù)中進(jìn)行保存。基于數(shù)據(jù)庫(kù)服務(wù)器100,管理員通過(guò)用戶(hù)信息描述模塊300對(duì)用戶(hù)信息進(jìn)行描述。然后將所描述的用戶(hù)信息、用戶(hù)組信息以及站點(diǎn)信息存放至數(shù)據(jù)庫(kù)服務(wù)器100。
(2)在資源網(wǎng)站進(jìn)行爬行分析,獲取資源內(nèi)容,并建立總索引,其過(guò)程包括爬行流程中主體是爬行器。爬行器按照管理員描述的用戶(hù)信息,從每個(gè)用戶(hù)組中取出一個(gè)能夠代表該組權(quán)限的代表用戶(hù)信息進(jìn)行單點(diǎn)登錄,獲得認(rèn)證通過(guò)后對(duì)網(wǎng)站內(nèi)其有權(quán)訪(fǎng)問(wèn)的資源進(jìn)行爬行,具體流程如下(2.1)爬行器模塊400直接通過(guò)數(shù)據(jù)庫(kù)服務(wù)器100獲取某用戶(hù)組信息,并通過(guò)數(shù)據(jù)庫(kù)服務(wù)器100找出能夠代表該用戶(hù)組權(quán)限的代表用戶(hù)信息(其中包括用戶(hù)名、用戶(hù)密碼、用戶(hù)組ID等)。
(2.2)攜帶用戶(hù)信息的爬行器向單點(diǎn)登錄模塊200輸入用戶(hù)名以及密碼進(jìn)行登錄,從而可以從單點(diǎn)登錄模塊200獲取該用戶(hù)組在各網(wǎng)站中的訪(fǎng)問(wèn)權(quán)限。由于同一個(gè)用戶(hù)組內(nèi)用戶(hù)權(quán)限相同,因此爬行器獲得的權(quán)限可以代表整個(gè)用戶(hù)組用戶(hù)的權(quán)限。
(2.3)獲得訪(fǎng)問(wèn)權(quán)限的爬行器對(duì)資源網(wǎng)站進(jìn)行爬行,獲取該用戶(hù)組權(quán)限內(nèi)的所有網(wǎng)頁(yè)與文檔,并使用不同的索引器結(jié)合該用戶(hù)組的用戶(hù)組ID建立索引。索引建立時(shí)爬行器模塊400將網(wǎng)頁(yè)資源的內(nèi)容(包括網(wǎng)頁(yè)的文本內(nèi)容、標(biāo)題、URL等)及爬行器所代表的用戶(hù)組信息寫(xiě)入索引庫(kù)600。除此之外,爬行器還必須將爬行獲得的資源信息與該爬行器代表的用戶(hù)組ID一同寫(xiě)入索引庫(kù)600,使得具有特定權(quán)限的爬行器所建立的索引中所有條目的組ID字段都為統(tǒng)一的特定值,即為爬行器所代表的用戶(hù)組的組ID。
(2.4)索引建立完畢后將所有分組索引合并成總索引,查詢(xún)檢索模塊500就能夠通過(guò)檢索索引庫(kù)600中的總索引向用戶(hù)提供查詢(xún)檢索服務(wù)。
(3)向用戶(hù)提供搜索服務(wù),其過(guò)程包括搜索流程針對(duì)的對(duì)象是所有使用該系統(tǒng)的用戶(hù),用戶(hù)通過(guò)單點(diǎn)登錄模塊200進(jìn)行身份認(rèn)證并獲得自己的訪(fǎng)問(wèn)權(quán)限,然后通過(guò)查詢(xún)檢索模塊500提交查詢(xún)關(guān)鍵字,即能夠得到該用戶(hù)訪(fǎng)問(wèn)權(quán)限內(nèi)的查詢(xún)結(jié)果。
(3.1)查詢(xún)檢索模塊500也在單點(diǎn)登錄模塊200的控制之下,因此用戶(hù)在向查詢(xún)檢索模塊500提交查詢(xún)請(qǐng)求時(shí),查詢(xún)檢索模塊500除了獲得用戶(hù)的查詢(xún)關(guān)鍵字,還能夠從單點(diǎn)登錄模塊200獲得用戶(hù)的權(quán)限認(rèn)證信息,包括用戶(hù)名、用戶(hù)密碼等,并可以通過(guò)這些信息獲得用戶(hù)所屬用戶(hù)組的用戶(hù)組ID。
(3.2)然后查詢(xún)檢索模塊500向索引庫(kù)600提交用戶(hù)提供的關(guān)鍵字和用戶(hù)組ID,并在索引庫(kù)中找到同時(shí)匹配關(guān)鍵字和用戶(hù)組ID的條目,并將這些命中的條目排序后返回給用戶(hù)。
用戶(hù)信息描述模塊300可以采用如圖2所示的功能模塊予以具體實(shí)現(xiàn),它包括站點(diǎn)信息描述模塊310、用戶(hù)登錄信息描述模塊320和用戶(hù)組信息描述模塊330。
站點(diǎn)信息描述模塊310為管理員提供描述站點(diǎn)信息的接口。管理員在受控的站點(diǎn)信息描述模塊310上通過(guò)對(duì)數(shù)據(jù)庫(kù)服務(wù)器100上的網(wǎng)站信息表的操作實(shí)現(xiàn)對(duì)資源網(wǎng)站的注冊(cè),注冊(cè)信息包括網(wǎng)站名稱(chēng)、網(wǎng)站首頁(yè)URL、網(wǎng)站的登錄URL、網(wǎng)站的訪(fǎng)問(wèn)控制策略及每個(gè)連接器的缺省用戶(hù)登錄參數(shù),如圖3所示。管理員描述完畢后向數(shù)據(jù)庫(kù)服務(wù)器100提交對(duì)網(wǎng)站信息表的修改信息,數(shù)據(jù)庫(kù)服務(wù)器100對(duì)管理員提交的描述和修改信息進(jìn)行保存。
用戶(hù)登錄信息描述模塊320為管理員提供描述用戶(hù)登錄信息的接口,使管理員能夠訪(fǎng)問(wèn)并修改數(shù)據(jù)庫(kù)服務(wù)器100中的用戶(hù)信息表。各網(wǎng)站管理員根據(jù)站點(diǎn)信息描述模塊310中的站點(diǎn)名獲得自己網(wǎng)站的站點(diǎn)ID,并根據(jù)該站點(diǎn)ID通過(guò)用戶(hù)登錄信息描述模塊320進(jìn)行該網(wǎng)站用戶(hù)信息的描述(即描述所有與管理員具有相同站點(diǎn)ID的用戶(hù)),并寫(xiě)入數(shù)據(jù)庫(kù)服務(wù)器100。用戶(hù)登錄信息具體描述方法如下用戶(hù)信息表中每個(gè)用戶(hù)擁有用戶(hù)ID、密碼、級(jí)別(若為分級(jí)訪(fǎng)問(wèn)控制)、用戶(hù)網(wǎng)站ID等屬性,其中用戶(hù)網(wǎng)站ID為該用戶(hù)的創(chuàng)建者所屬網(wǎng)站ID,如圖4所示。管理員描述完畢后通過(guò)用戶(hù)登錄信息描述模塊320向數(shù)據(jù)庫(kù)服務(wù)器100提交對(duì)用戶(hù)信息表的修改信息,其中主要包括用戶(hù)名、用戶(hù)登錄密碼等,數(shù)據(jù)庫(kù)服務(wù)器100對(duì)管理員提交的描述和修改信息進(jìn)行保存。
用戶(hù)組描述模塊330為管理員提供描述用戶(hù)組與用戶(hù)對(duì)應(yīng)信息的接口。對(duì)于某一網(wǎng)站,其用戶(hù)數(shù)量可能很多,訪(fǎng)問(wèn)控制策略也可能不同,但是總會(huì)有許多用戶(hù)具有相同的權(quán)限。本系統(tǒng)將同一網(wǎng)站上具有相同權(quán)限的用戶(hù)歸為同一個(gè)用戶(hù)組。由于各網(wǎng)站管理員不一定能夠清楚了解各個(gè)網(wǎng)站復(fù)雜的訪(fǎng)問(wèn)控制策略,但是根據(jù)用戶(hù)權(quán)限對(duì)用戶(hù)進(jìn)行分組卻相對(duì)容易。通過(guò)用戶(hù)組描述用戶(hù)權(quán)限的優(yōu)點(diǎn)除了描述者不需要了解網(wǎng)站具體訪(fǎng)問(wèn)控制策略,還可以使爬行器方便地根據(jù)用戶(hù)名獲得登錄參數(shù)。一個(gè)網(wǎng)站雖然擁有大量可達(dá)的URL和用戶(hù),但可以將用戶(hù)歸屬為數(shù)量較少的用戶(hù)組,這就使資源描述成為可能。組織良好的網(wǎng)站中由于大部分用戶(hù)具有相同的訪(fǎng)問(wèn)權(quán)限,這些用戶(hù)信息會(huì)定位于同一個(gè)用戶(hù)組內(nèi),即使網(wǎng)站沒(méi)有將具有相同訪(fǎng)問(wèn)權(quán)限的用戶(hù)歸為同一個(gè)用戶(hù)組,甚至訪(fǎng)問(wèn)控制粒度細(xì)到每個(gè)用戶(hù)的權(quán)限皆不相同,本系統(tǒng)也可以對(duì)每個(gè)用戶(hù)進(jìn)行描述,這樣雖然增加了工作量,但是提高了系統(tǒng)的靈活度。
用戶(hù)組描述模塊330根據(jù)管理員提供的訪(fǎng)問(wèn)控制權(quán)限設(shè)置、歸納用戶(hù)組信息,并將用戶(hù)組信息寫(xiě)入數(shù)據(jù)庫(kù)服務(wù)器100。
管理員根據(jù)站點(diǎn)信息描述模塊310和用戶(hù)登錄信息描述模塊320中的信息以及各自網(wǎng)站的訪(fǎng)問(wèn)控制權(quán)限設(shè)置用戶(hù)組信息表。用戶(hù)組信息表中的屬性有用戶(hù)ID,用戶(hù)組ID,網(wǎng)站ID等,如圖5所示。用戶(hù)和用戶(hù)組滿(mǎn)足多對(duì)多的關(guān)系,即一個(gè)用戶(hù)可以屬于多個(gè)用戶(hù)組,一個(gè)用戶(hù)組可以擁有多個(gè)不同的用戶(hù)。管理員描述完畢后向數(shù)據(jù)庫(kù)服務(wù)器100提交對(duì)用戶(hù)組信息表的修改信息,數(shù)據(jù)庫(kù)服務(wù)器100對(duì)管理員提交的用戶(hù)組描述和修改信息進(jìn)行保存。
爬行器模塊400可以采用如圖6所示的功能模塊予以具體實(shí)現(xiàn),它包括網(wǎng)頁(yè)爬行模塊410、網(wǎng)頁(yè)分析模塊420、索引構(gòu)建模塊430以及文件庫(kù)440。
網(wǎng)頁(yè)爬行模塊410首先從數(shù)據(jù)庫(kù)服務(wù)器100獲取每個(gè)不同用戶(hù)組的代表用戶(hù)信息,然后根據(jù)該用戶(hù)信息通過(guò)單點(diǎn)登錄模塊200進(jìn)行模擬登錄,以獲得該爬行器的訪(fǎng)問(wèn)權(quán)限,登錄成功后網(wǎng)頁(yè)爬行模塊410對(duì)資源網(wǎng)站上的公共資源及受控資源內(nèi)容進(jìn)行爬行,獲取網(wǎng)頁(yè)的源文件,并傳送給網(wǎng)頁(yè)分析模塊420,接受網(wǎng)頁(yè)分析模塊420反饋的HTML鏈接。
網(wǎng)頁(yè)爬行模塊410將獲取的網(wǎng)頁(yè)內(nèi)容交給網(wǎng)頁(yè)分析模塊420,網(wǎng)頁(yè)分析模塊420負(fù)責(zé)對(duì)這些網(wǎng)頁(yè)進(jìn)行分析,將分析得到的各種文本內(nèi)容(TXT、XML等格式)直接解析,并傳遞給索引構(gòu)建模塊430,而將HTML鏈接提交給網(wǎng)頁(yè)爬行模塊410繼續(xù)進(jìn)行爬行,對(duì)于其他格式(如DOC、PDF等)的文件,爬行器首先將其保存至文件庫(kù)440,然后在爬行結(jié)束后再由文件庫(kù)440將存放的文件傳遞給索引構(gòu)建模塊430以建立索引。
索引構(gòu)建模塊430對(duì)從網(wǎng)頁(yè)分析模塊420接收的文本直接建立索引。索引構(gòu)建模塊430對(duì)文件庫(kù)440提交的DOC、PDF等內(nèi)容進(jìn)行分析,讀取其內(nèi)容并生成文本,然后對(duì)生成文本內(nèi)容建立索引,生成該爬行器的分組索引,最后將各分組索引合并為總索引存放在索引庫(kù)600中。
本系統(tǒng)設(shè)計(jì)的爬行器對(duì)資源網(wǎng)站進(jìn)行爬行的流程如下爬行器從數(shù)據(jù)庫(kù)服務(wù)器100獲得每個(gè)資源節(jié)點(diǎn)的注冊(cè)信息。以資源網(wǎng)站節(jié)點(diǎn)的首頁(yè)URL資源網(wǎng)站的首頁(yè))為起始鏈接,對(duì)資源節(jié)點(diǎn)進(jìn)行爬行,所獲得的資源全部為公開(kāi)資源(即該爬行器為public組爬行器),將所獲得的公開(kāi)資源添加到索引文件中,存放為公共索引文件,并將public組爬行器爬行過(guò)的URL寫(xiě)入哈希表,為以后受控資源的分組爬行器提供頁(yè)面分析參考,即保證公用資源在受控資源分組爬行器中不再被解析。針對(duì)受控資源,爬行器首先從數(shù)據(jù)庫(kù)服務(wù)器100中找到該資源網(wǎng)站(圖5)以及該網(wǎng)站中被描述的用戶(hù)組信息(圖3,4),然后根據(jù)不同的用戶(hù)組ID獲取該組的代表用戶(hù),從用戶(hù)信息和資源描述數(shù)據(jù)庫(kù)中取得該代表用戶(hù)對(duì)于該站點(diǎn)的登錄信息(包括登錄頁(yè)面、退出頁(yè)面、登錄參數(shù)等),由爬行器通過(guò)瀏覽器模擬器模擬該代表用戶(hù),將其對(duì)應(yīng)的用戶(hù)登錄參數(shù)交給單點(diǎn)登錄模塊200進(jìn)行登錄操作。登錄成功后該爬行器即為當(dāng)前代表用戶(hù)所屬的用戶(hù)組工作(稱(chēng)之為分組爬行器),然后分組爬行器對(duì)該網(wǎng)站進(jìn)行重新爬行(不再對(duì)公用資源進(jìn)行爬行),以獲得對(duì)應(yīng)分組用戶(hù)能夠訪(fǎng)問(wèn)的受控資源內(nèi)容。在建立該分組的索引時(shí),分組爬行器將組ID作為一個(gè)域(Field)寫(xiě)入索引(公用資源該域的值為public),為查詢(xún)檢索提供過(guò)濾功能。分組爬行器模塊的爬行工作流程如圖7所示。
單點(diǎn)登錄控制下的查詢(xún)檢索模塊500以爬行器模塊400構(gòu)建的索引庫(kù)600為基礎(chǔ),為用戶(hù)提供基于訪(fǎng)問(wèn)控制的搜索服務(wù)。查詢(xún)檢索模塊500包括關(guān)鍵字提交模塊510、后臺(tái)檢索模塊520和快照生成模塊530。
關(guān)鍵字提交模塊510向用戶(hù)提供搜索引擎關(guān)鍵字提交頁(yè)面,為搜索引擎系統(tǒng)獲取用戶(hù)提交查詢(xún)請(qǐng)求提供接口,并按照一定的分詞策略對(duì)接收到的關(guān)鍵字進(jìn)行分詞處理。關(guān)鍵字提交模塊510首先接受單點(diǎn)登錄模塊200對(duì)申請(qǐng)搜索服務(wù)的用戶(hù)的認(rèn)證信息,如果認(rèn)證標(biāo)識(shí)表明該用戶(hù)認(rèn)證通過(guò),則從單點(diǎn)登錄模塊200獲取該用戶(hù)的用戶(hù)組信息。關(guān)鍵字提交模塊510獲得用戶(hù)輸入的關(guān)鍵字后,將關(guān)鍵字分割成若干個(gè)具有詞義的單詞,并將分詞后的關(guān)鍵字以及用戶(hù)組信息傳遞給后臺(tái)檢索模塊520;后臺(tái)檢索模塊520負(fù)責(zé)將接收到的關(guān)鍵字及用戶(hù)組信息提交給索引庫(kù)600進(jìn)行檢索,然后從索引庫(kù)600獲取對(duì)應(yīng)用戶(hù)組訪(fǎng)問(wèn)權(quán)限內(nèi)的檢索結(jié)果并排序;快照生成模塊530能夠根據(jù)返回結(jié)果集生成結(jié)果快照,使檢索結(jié)果易于閱讀,并負(fù)責(zé)生成結(jié)果頁(yè)面將結(jié)果顯示給用戶(hù)。
查詢(xún)檢索模塊500內(nèi)各模塊間的數(shù)據(jù)流傳遞細(xì)節(jié)如下關(guān)鍵字提交模塊510在收到單點(diǎn)登錄模塊200傳遞來(lái)的認(rèn)證通過(guò)信息以及用戶(hù)所屬組ID后,對(duì)從用戶(hù)接受的檢索關(guān)鍵字進(jìn)行適當(dāng)策略的分詞,使檢索結(jié)果更加精準(zhǔn),然后將分詞后的檢索詞以及用戶(hù)組信息交給后臺(tái)檢索模塊520;后臺(tái)檢索模塊520接收分詞后的檢索詞以及用戶(hù)組ID信息,然后分別將關(guān)鍵詞、用戶(hù)組ID遞交給索引庫(kù)600與索引中對(duì)應(yīng)域進(jìn)行匹配,并從索引庫(kù)600返回命中的記錄并對(duì)返回結(jié)果集進(jìn)行排序,然后將結(jié)果集與關(guān)鍵詞交給快照生成模塊530,其中結(jié)果集中的每條結(jié)果記錄包括網(wǎng)頁(yè)URL、用戶(hù)組ID、標(biāo)題和內(nèi)容四個(gè)域;快照生成模塊530將索引標(biāo)題和內(nèi)容字段中與關(guān)鍵詞相關(guān)內(nèi)容高亮顯示,并在內(nèi)容字段中取出最相關(guān)的段落顯示在結(jié)果返回頁(yè)面,使用戶(hù)更加直觀(guān)地閱讀結(jié)果集。如圖8。
搜索引擎用戶(hù)界面被單點(diǎn)登錄模塊200控制,即如果需要對(duì)受控資源進(jìn)行檢索,必須要通過(guò)單點(diǎn)登錄模塊200的認(rèn)證。如果用戶(hù)通過(guò)了認(rèn)證,搜索頁(yè)面將用戶(hù)提交的關(guān)鍵字和用戶(hù)組ID一同提交給后臺(tái)檢索模塊520。后臺(tái)檢索模塊520在索引庫(kù)600中檢索與關(guān)鍵字相符合并且組ID相符合的記錄。后臺(tái)檢索模塊520與用戶(hù)信息描述模塊的數(shù)據(jù)庫(kù)服務(wù)器100進(jìn)行通信,判斷結(jié)果集中哪些記錄具有該用戶(hù)的訪(fǎng)問(wèn)權(quán)限,過(guò)濾得到的結(jié)果為該用戶(hù)被授權(quán)訪(fǎng)問(wèn)的、滿(mǎn)足查詢(xún)條件的所有鏈接。后臺(tái)檢索模塊520根據(jù)排序策略對(duì)返回的所有鏈接進(jìn)行排序(將對(duì)用戶(hù)來(lái)說(shuō)更重要的鏈接排在列表前面),并將排序后的鏈接及快照結(jié)果返回給用戶(hù),即完成搜索服務(wù)。搜索流程如圖9所示。
權(quán)利要求
1.一種基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng),其特征在于該系統(tǒng)包括數(shù)據(jù)庫(kù)服務(wù)器(100)、單點(diǎn)登錄模塊(200)、用戶(hù)信息描述模塊(300)、爬行器模塊(400)、查詢(xún)檢索模塊(500)和索引庫(kù)(600);數(shù)據(jù)庫(kù)服務(wù)器(100)用于接受管理員通過(guò)用戶(hù)信息描述模塊(300)提供的接口提交的資源站點(diǎn)信息、用戶(hù)信息以及用戶(hù)組信息并進(jìn)行存儲(chǔ),數(shù)據(jù)庫(kù)服務(wù)器(100)為爬行器模塊(400)提供爬行器登錄所需的用戶(hù)組的代表用戶(hù)名、密碼以及用戶(hù)組信息;數(shù)據(jù)庫(kù)服務(wù)器(100)將單點(diǎn)登錄模塊(200)提供的用戶(hù)名和密碼信息與數(shù)據(jù)庫(kù)中存放的用戶(hù)名密碼信息進(jìn)行比對(duì),并反饋信息;單點(diǎn)登錄模塊(200)用于接受用戶(hù)或爬行器的輸入信息并提交至數(shù)據(jù)庫(kù)服務(wù)器(100),并接收其反饋的認(rèn)證結(jié)果,如果認(rèn)證通過(guò),單點(diǎn)登錄模塊(200)根據(jù)用戶(hù)或爬行器請(qǐng)求的頁(yè)面鏈接將該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)發(fā)送給查詢(xún)檢索模塊(500)、用戶(hù)信息描述模塊(300)以及受控的各個(gè)資源網(wǎng)站;用戶(hù)信息描述模塊(300)為管理員提供一個(gè)對(duì)用戶(hù)信息進(jìn)行描述的接口,并將用戶(hù)信息保存至數(shù)據(jù)庫(kù)服務(wù)器(100),并接收單點(diǎn)登錄模塊(200)發(fā)送的認(rèn)證通過(guò)標(biāo)識(shí)以及代表用戶(hù)權(quán)限的用戶(hù)組信息;爬行器模塊(400)從數(shù)據(jù)庫(kù)服務(wù)器(100)獲取不同用戶(hù)組的代表用戶(hù)信息,并提交給單點(diǎn)登錄模塊(200)進(jìn)行登錄,如果登錄成功,爬行器模塊(400)根據(jù)其權(quán)限在單點(diǎn)登錄模塊(200)控制下的資源網(wǎng)站進(jìn)行爬行和解析,獲取各網(wǎng)站擁有的網(wǎng)絡(luò)資源,建立索引,存放在索引庫(kù)(600);查詢(xún)檢索模塊(500)為用戶(hù)提供搜索引擎的使用界面,并提供搜索服務(wù),查詢(xún)檢索模塊(500)在單點(diǎn)登錄模塊(200)的控制之下,在認(rèn)證通過(guò)時(shí),接收單點(diǎn)登錄模塊(200)發(fā)送的認(rèn)證通過(guò)標(biāo)識(shí)以及用戶(hù)組信息,獲取用戶(hù)的訪(fǎng)問(wèn)權(quán)限,查詢(xún)檢索模塊(500)接受來(lái)自用戶(hù)的查詢(xún)關(guān)鍵字,對(duì)其進(jìn)行分詞并根據(jù)獲取的用戶(hù)權(quán)限對(duì)索引庫(kù)(600)進(jìn)行檢索并接收返回結(jié)果;索引庫(kù)(600)根據(jù)爬行器模塊(400)獲取的各種網(wǎng)頁(yè)資源及用戶(hù)組信息建立索引,并進(jìn)行合并存儲(chǔ),根據(jù)查詢(xún)檢索模塊(500)提交的查詢(xún)請(qǐng)求在索引中進(jìn)行快速檢索排序,反饋相應(yīng)的檢索結(jié)果。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于用戶(hù)信息描述模塊(300)包括站點(diǎn)信息描述模塊310、用戶(hù)登錄信息描述模塊320和用戶(hù)組信息描述模塊330;站點(diǎn)信息描述模塊310為管理員提供描述站點(diǎn)信息的接口,并將站點(diǎn)信息提交至數(shù)據(jù)庫(kù)服務(wù)器(100)保存;用戶(hù)登錄信息描述模塊(320)為管理員提供描述用戶(hù)登錄信息的接口,并將用戶(hù)登錄信息提交至數(shù)據(jù)庫(kù)服務(wù)器(100)保存;用戶(hù)組描述模塊330為管理員提供描述用戶(hù)組與用戶(hù)對(duì)應(yīng)信息的接口,并將用戶(hù)組與用戶(hù)對(duì)應(yīng)信息提交至數(shù)據(jù)庫(kù)服務(wù)器(100)保存。
3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于爬行器模塊(400)包括網(wǎng)頁(yè)爬行模塊(410)、網(wǎng)頁(yè)分析模塊(420)、索引構(gòu)建模塊(430)以及文件庫(kù)(440);網(wǎng)頁(yè)爬行模塊(410)用于從數(shù)據(jù)庫(kù)服務(wù)器(100)獲取每個(gè)不同用戶(hù)組的代表用戶(hù)信息,根據(jù)該用戶(hù)信息通過(guò)單點(diǎn)登錄模塊(200)進(jìn)行模擬登錄以獲得該爬行器的分組權(quán)限,登錄成功后網(wǎng)頁(yè)爬行模塊(410)對(duì)資源網(wǎng)站上公共資源及受控資源進(jìn)行內(nèi)容爬行,獲取網(wǎng)頁(yè)的源文件,并傳送給網(wǎng)頁(yè)分析模塊(420),并接受網(wǎng)頁(yè)分析模塊(420)反饋的HTML鏈接;網(wǎng)頁(yè)分析模塊(420)負(fù)責(zé)對(duì)網(wǎng)頁(yè)爬行模塊(410)發(fā)送的網(wǎng)頁(yè)進(jìn)行分析,將分析得到的文本格式鏈接內(nèi)容直接解析并傳遞給索引構(gòu)建模塊(430),其中HTML鏈接則提交給網(wǎng)頁(yè)爬行模塊(410)繼續(xù)進(jìn)行爬行,其他格式內(nèi)容保存至文件庫(kù)(440);索引構(gòu)建模塊(430)對(duì)從網(wǎng)頁(yè)分析模塊(420)以及文件庫(kù)(440)接收的內(nèi)容分別進(jìn)行索引的建立,生成該爬行器的分組索引,最后將各分組索引合并為總索引存放在索引庫(kù)(600)中。
4.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于查詢(xún)檢索模塊(500)包括關(guān)鍵字提交模塊(510)、后臺(tái)檢索模塊(520)和快照生成模塊(530);關(guān)鍵字提交模塊(510)接受單點(diǎn)登錄模塊(200)對(duì)申請(qǐng)搜索服務(wù)的用戶(hù)的認(rèn)證信息,如果認(rèn)證標(biāo)識(shí)表明該用戶(hù)認(rèn)證通過(guò),則從單點(diǎn)登錄模塊(200)獲取該用戶(hù)的用戶(hù)組信息,向用戶(hù)提供搜索引擎關(guān)鍵字提交頁(yè)面,為搜索引擎系統(tǒng)獲取用戶(hù)提交查詢(xún)請(qǐng)求提供接口,并對(duì)接受到的關(guān)鍵字進(jìn)行分詞操作,并提交給后臺(tái)檢索模塊(520);后臺(tái)檢索模塊(520)負(fù)責(zé)按照接收到的關(guān)鍵字及用戶(hù)組信息提交給索引庫(kù)(600)進(jìn)行檢索,從索引庫(kù)(600)獲取對(duì)應(yīng)用戶(hù)組訪(fǎng)問(wèn)權(quán)限內(nèi)檢索返回結(jié)果并排序,并發(fā)送給快照生成模塊(530);快照生成模塊(530)根據(jù)返回結(jié)果集生成快照,并負(fù)責(zé)生成結(jié)果頁(yè)面將結(jié)果顯示給用戶(hù)。
5.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于查詢(xún)檢索模塊(500)包括關(guān)鍵字提交模塊(510)、后臺(tái)檢索模塊(520)和快照生成模塊(530);關(guān)鍵字提交模塊(510)接受單點(diǎn)登錄模塊(200)對(duì)申請(qǐng)搜索服務(wù)的用戶(hù)的認(rèn)證信息,如果認(rèn)證標(biāo)識(shí)表明該用戶(hù)認(rèn)證通過(guò),則從單點(diǎn)登錄模塊(200)獲取該用戶(hù)的用戶(hù)組信息,向用戶(hù)提供搜索引擎關(guān)鍵字提交頁(yè)面,為搜索引擎系統(tǒng)獲取用戶(hù)提交查詢(xún)請(qǐng)求提供接口,并對(duì)接受到的關(guān)鍵字進(jìn)行分詞操作,并提交給后臺(tái)檢索模塊(520);后臺(tái)檢索模塊(520)負(fù)責(zé)按照接收到的關(guān)鍵字及用戶(hù)組信息提交給索引庫(kù)(600)進(jìn)行檢索,從索引庫(kù)(600)獲取對(duì)應(yīng)用戶(hù)組訪(fǎng)問(wèn)權(quán)限內(nèi)檢索返回結(jié)果并排序,并發(fā)送給快照生成模塊(530);快照生成模塊(530)根據(jù)返回結(jié)果集生成快照,并負(fù)責(zé)生成結(jié)果頁(yè)面將結(jié)果顯示給用戶(hù)。
全文摘要
一種基于訪(fǎng)問(wèn)控制的安全搜索引擎系統(tǒng),包括數(shù)據(jù)庫(kù)服務(wù)器、單點(diǎn)登錄模塊、用戶(hù)信息描述模塊、爬行器模塊、查詢(xún)檢索模塊和索引庫(kù)。系統(tǒng)根據(jù)資源安全級(jí)別對(duì)用戶(hù)信息進(jìn)行描述;爬行器獲取爬行受控資源的權(quán)限并采集受安全控制的資源內(nèi)容;按照用戶(hù)的查詢(xún)關(guān)鍵字以及用戶(hù)的安全等級(jí)返回對(duì)應(yīng)的可訪(fǎng)問(wèn)的資源列表;由于不同用戶(hù)在不同網(wǎng)站上具有不同的權(quán)限,搜索引擎根據(jù)單點(diǎn)登錄信息獲取用戶(hù)的身份信息,并使其能夠在訪(fǎng)問(wèn)檢索結(jié)果資源時(shí)不再需要登錄操作。本發(fā)明通過(guò)用戶(hù)信息描述建立受控資源內(nèi)容索引,根據(jù)用戶(hù)身份實(shí)現(xiàn)個(gè)性化的網(wǎng)絡(luò)搜索引擎,并簡(jiǎn)化用戶(hù)訪(fǎng)問(wèn)搜索結(jié)果的過(guò)程,使搜索引擎返回的結(jié)果不僅具有極強(qiáng)的針對(duì)性,而且安全控制嚴(yán)格,用戶(hù)操作簡(jiǎn)便。
文檔編號(hào)G06F17/30GK101042699SQ20071005202
公開(kāi)日2007年9月26日 申請(qǐng)日期2007年4月28日 優(yōu)先權(quán)日2007年4月28日
發(fā)明者李瑞軒, 盧正鼎, 文坤梅, 孫小林, 於光燦 申請(qǐng)人:華中科技大學(xué)