專利名稱:檢索架構(gòu)和檢索方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)搜索,尤其是涉及一種檢索架構(gòu)及檢索方法。
背景技術(shù):
現(xiàn)在的搜索引擎種類有很多,從用途上可以將其分為兩類一類是以獲取信息為 任務(wù)的搜索引擎,即用戶通過搜索得到的是符合要求的網(wǎng)頁,用戶使用該搜索引擎的目的 往往是出于對信息的獲取需要,用戶的大部分行為是瀏覽網(wǎng)頁;另一類是以獲取資源為任 務(wù)的搜索引擎,使用這類搜索引擎的用戶往往目的非常明確,就是要下載自己需要的資源, 比如視頻、音頻、電子書、軟件等,用戶最期望通過這類搜索引擎搜索得到自己想要的資源 并進行快速的數(shù)據(jù)傳輸。圖l描繪了現(xiàn)有搜索引擎的大體架構(gòu)。其中,網(wǎng)絡(luò)爬蟲crawler 由一些種子站點為起始,無限增量爬取相應(yīng)的網(wǎng)絡(luò)資源,包括下載資源或者網(wǎng)頁文件,并將 這些資源以"url-〉文本文檔"這樣的結(jié)構(gòu)存入海量數(shù)據(jù)庫。建立索弓I的服務(wù)器Indexer 定時利用海量數(shù)據(jù)庫中的增量文件,建立起"關(guān)鍵字-〉url"這樣的索引文件。索引服務(wù)器 Index Server,其利用公共網(wǎng)關(guān)接口 (Common Gateway Interface,簡稱CGI)傳來的用戶 clientl,…,n的查詢請求作為參數(shù),查詢索引文件,得到結(jié)果,并返回給CGI程序。CGI程 序運行在網(wǎng)絡(luò)服務(wù)器(web server)(通常是apache)上,用戶通過客戶端或者網(wǎng)頁訪問提 交查詢,于是網(wǎng)絡(luò)服務(wù)器調(diào)用CGI程序,并把查詢參數(shù)(即帶有參數(shù)的鏈接)帶入CGI程序, CGI將查詢參數(shù)解析成Index Server能夠識別的結(jié)構(gòu),向Index Server提出查詢請求,在 得到Index Server提供的查詢結(jié)果后,CGI程序還會把結(jié)果轉(zhuǎn)化成相應(yīng)的格式,提交給網(wǎng) 絡(luò)服務(wù)器,并以網(wǎng)頁的形式展現(xiàn)于客戶端clientl,…,n。 以上是一個普遍通用的網(wǎng)絡(luò)搜索引擎架構(gòu),而針對網(wǎng)絡(luò)下載資源的搜索引擎略有 不同。已知獲取網(wǎng)絡(luò)資源的方式分為三種通過ftp下載資源;從提供下載資源的門戶網(wǎng)站 上找到所需要的資源,并從相應(yīng)服務(wù)器上下載資源;p2p方式下載資源。這三種網(wǎng)絡(luò)資源搜 索架構(gòu)基本相同,但是資源來源以及資源收集方式區(qū)別很大,以下分別予以詳述。
1. ftp方式 ftp的資源搜集模塊主要分為兩部分,ftp站點獲取和ftp站點文件信息搜集。ftp 站點獲取模塊主要通過站點探測方式。所謂的站點探測的方法,就是對國內(nèi)互聯(lián)網(wǎng)上的130 多個網(wǎng)段的21端口一個一個進行探測,如果有效,將其收入。這種方法優(yōu)點是收錄的站點 數(shù)目會很多,但是缺點是通常只能支持21端口的匿名站點。當(dāng)收集了所有有可能成為下 載文件的ftp服務(wù)器站點后,接下來要做的就是把各個服務(wù)器提供的站點文件信息收集起 來。站點的內(nèi)容提取,也就是把一個ftp站點的目錄信息和文件信息都下載下來,然后進行 建立索引。 由ftp資源搜集的方式也可以看出,由于通常只能支持21端口的匿名站點,所以
包含有用戶所需資源的ftp站點可能很少或者用戶不可用,因此,通過這種方式獲得的網(wǎng)
絡(luò)資源有限。 2. http搜索
—個非常典型的例子就是百度的音樂搜索,可下載資源來源于各個門戶網(wǎng)站,這
些網(wǎng)站有自己的專用服務(wù)器提供下載支持,而搜索引擎的工作就是抓取搜集這些種子站點
的資源鏈接,并根據(jù)資源的名稱建立索引,為用戶提供查詢服務(wù)。這一類搜索引擎的優(yōu)點是
門戶網(wǎng)站提供的下載服務(wù)器很穩(wěn)定,用戶的搜索往往是非常有效的,搜索到的東西絕大部
分都可以下載成功,而且由于是從提供下載的網(wǎng)站上獲得資源,可以很容易的做成分類搜
索,資源的獲取以及用戶的查詢都有明確的指向性,召回率和精度都可以很好的保證。 但是這種搜索還是有許多局限性的。由于資源的種類受到了很大的限制,所以不
能滿足所有用戶的需求;也由于下載資源的服務(wù)器的負載、帶寬、連接數(shù)的限制,使下載速
度受到了很大的影響。 3.p2p搜索 p2p搜索引擎的資源來源是用戶發(fā)布共享資源的種子給索引模塊(tracker);或 者在線用戶將共享資源上傳到目錄服務(wù)器。目錄服務(wù)器將對用戶的資源解析成固定的格 式(其中包括文檔的名稱、md5碼、用戶的地址信息等),索引模塊就是根據(jù)這些數(shù)據(jù)建立索 引。用戶對于某個關(guān)鍵詞的查詢通過CGI交給Index Server, Index Server根據(jù)索引文件 得到初始查詢結(jié)果,同時,通過狀態(tài)服務(wù)器得到用戶的在線信息并根據(jù)這個結(jié)果過濾掉離 線用戶的共享結(jié)果,將這樣的結(jié)果返回給用戶。用戶對某一個資源的下載是通過與擁有這 個資源(整個文件或部分)的用戶的連接,分塊下載到本地機器上。 這種模式下,用戶下載資源的同時也為其他用戶提供下載,沒有了服務(wù)器負載以 及帶寬的限制,p2p下載方式為用戶提供了相當(dāng)豐富的資源,并且對于一些熱門資源下載速 度會很大。但是當(dāng)一個資源種子用戶不在線甚至其他所有的用戶所擁有的文件切片無法拼 湊成整個文件的時候,這個文件就無法被下載了,也就是說這種方式對于用戶獲取資源有 很大的不穩(wěn)定性。 可以看出,上述三種資源搜索引擎的架構(gòu)分別存在著資源數(shù)量有限、種類單一、下 載速度不夠快、下載不穩(wěn)定等等缺陷。
發(fā)明內(nèi)容
本發(fā)明的主要目的就是解決現(xiàn)有技術(shù)中的問題,提供一種檢索架構(gòu)和檢索方法, 其可供檢索的資源更豐富且資源的下載更加快速、穩(wěn)定。
為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案
—種檢索架構(gòu),包括 資源搜集模塊,用于搜集互聯(lián)網(wǎng)上可下載的文件的信息;
索引創(chuàng)建模塊,用于根據(jù)搜集結(jié)果建立文件索引; 查詢服務(wù)模塊,用于接收用戶的查詢請求并向用戶返回查詢結(jié)果;禾口 檢索服務(wù)模塊,用于響應(yīng)所述查詢請求,利用所述文件索引進行相應(yīng)的查詢; 其特征在于,所述文件索引為對p2p資源、ftp資源和http資源中的至少兩類資源
所建立的索引,所述檢索服務(wù)模塊包括p2p索引服務(wù)器、f tp索引服務(wù)器和http索引服務(wù)器
中相應(yīng)的至少兩者,還包括網(wǎng)關(guān)模塊,用于接收所述查詢請求并分派到各所述索引服務(wù)器,
以及接收、整合各所述索引服務(wù)器的查詢結(jié)果并返回給所述查詢服務(wù)模塊。
優(yōu)選地
所述查詢服務(wù)模塊包括網(wǎng)絡(luò)服務(wù)器和運行在所述網(wǎng)絡(luò)服務(wù)器上的公共網(wǎng)關(guān)接口 , 所述查詢請求經(jīng)所述公共網(wǎng)關(guān)接口解析后送至所述索引服務(wù)器,所述查詢結(jié)果經(jīng)公共網(wǎng)關(guān) 接口處理后提交給所述網(wǎng)絡(luò)服務(wù)器,所述網(wǎng)絡(luò)服務(wù)器以網(wǎng)頁形式向用戶展現(xiàn)所述查詢結(jié) 果。 所述網(wǎng)關(guān)模塊包括 配置初始化單元,用于初始化所述網(wǎng)關(guān)模塊的配置文件; 索引服務(wù)器初始化單元,用于初始化所述索引服務(wù)器的相關(guān)參數(shù),包括索引服務(wù) 器的IP、端口及類型; 連接建立單元,用于建立與所述公共網(wǎng)關(guān)接口和與所述索引服務(wù)器的連接;以及
查詢啟動單元,用于根據(jù)查詢請求啟動在所述索弓I服務(wù)器上的相應(yīng)查詢。
所述連接包括按套接字方式建立的連接。 所述查詢啟動單元包括線程創(chuàng)建單元,用于為每個查詢請求創(chuàng)建一個用以完成當(dāng) 次查詢的線程。 —種檢索方法,其特征在于,包括以下步驟 A、搜集互聯(lián)網(wǎng)上的p2p資源、ftp資源和http資源中的至少兩類資源的相關(guān)文件 信息; B、根據(jù)搜集結(jié)果建立與資源類別相應(yīng)的文件索引;
C、接收用戶的查詢請求; D、響應(yīng)所述查詢請求,分別利用所述相應(yīng)的文件索引進行相應(yīng)的p2p式或ftp式 或http式檢索; E、整合查詢結(jié)果并將其返回給用戶。
優(yōu)選地 所述步驟C中,所述查詢請求先經(jīng)網(wǎng)絡(luò)服務(wù)器上的公共網(wǎng)關(guān)接口解析,然后由網(wǎng)
關(guān)模塊分派至各索引服務(wù)器,所述步驟D中,各索引服務(wù)器利用解析出的關(guān)鍵詞進行對應(yīng)
于服務(wù)器類型的查詢,并將各查詢結(jié)果送由所述網(wǎng)關(guān)模塊整合;所述步驟E中,經(jīng)整合的查
詢結(jié)果先返回至所述網(wǎng)關(guān)模塊,再送入所述公共網(wǎng)關(guān)接口進行處理,然后由所述網(wǎng)絡(luò)服務(wù)
器以網(wǎng)頁形式向用戶展現(xiàn)。 所述步驟D之前還包括如下步驟 Dl、初始化關(guān)于所述網(wǎng)關(guān)模塊的配置文件; D2、初始化所述索引服務(wù)器的相關(guān)參數(shù),其包括所述索引服務(wù)器的IP、端口及類 型; D3、建立所述網(wǎng)關(guān)模塊與所述公共網(wǎng)關(guān)接口和所述索引服務(wù)器的連接;
所述步驟D包括如下步驟 D4、所述網(wǎng)關(guān)模塊根據(jù)查詢請求啟動在所述索引服務(wù)器上的相應(yīng)查詢。
所述步驟D3中,按套接字方式建立所述連接。 所述步驟D4中,為所述查詢隊列的每一個查詢請求分別創(chuàng)建一個線程來完成查 詢。
本發(fā)明有益的技術(shù)效果是 本發(fā)明的檢索架構(gòu)包括資源搜集模塊、索引創(chuàng)建模塊、查詢服務(wù)模塊和檢索服務(wù)模塊,其中,索引創(chuàng)建模塊對p2p資源、ftp資源和http資源中的至少兩類資源建立索引, 檢索服務(wù)模塊包括p2p索引服務(wù)器、ftp索引服務(wù)器和http索引服務(wù)器中相應(yīng)的至少兩者 以及網(wǎng)關(guān)模塊,網(wǎng)關(guān)模塊接收查詢請求并分派到各索引服務(wù)器,以及接收、整合各索引服務(wù) 器的查詢結(jié)果并返回給查詢服務(wù)模塊。這樣,本發(fā)明的檢索架構(gòu)和其所應(yīng)用的檢索方法改 善了傳統(tǒng)的單一的搜索引擎架構(gòu),把p2p搜索、ftp搜索、http搜索整合起來,可以利用統(tǒng) 一的如CGI的接口程序?qū)崿F(xiàn)查詢檢索,也就是說用戶的查詢?nèi)肟谥恍枰粋€,而查詢的結(jié) 果則來源于三個方面,也就是P2p、 ftp和http三者的搜索結(jié)果。因此,采用本發(fā)明,吸收 三種搜索引擎的優(yōu)點并彌補各自的不足,可為用戶提供一個資源豐富、穩(wěn)定、高速的下載平 臺。將三種搜索整合在一起,還減輕了系統(tǒng)負擔(dān),并且可以對于查詢的內(nèi)容以及查詢的結(jié)果 進行更加復(fù)雜的處理。
圖1展示了傳統(tǒng)搜索引擎的大體架構(gòu); 圖2展示了根據(jù)本發(fā)明一種實施例的檢索架構(gòu)的整體框架; 圖3展示了根據(jù)本發(fā)明一種實施例中網(wǎng)關(guān)模塊的實施原理; 圖4展示了根據(jù)本發(fā)明一種實施例中網(wǎng)關(guān)模塊的工作流程; 圖5展示了圖4中的Thread ConnectServers的算法描述; 圖6展示了圖4中的Creat commitSearch的過程; 圖7展示了圖6中通過線程來完成查詢的過程; 圖8展示了 commitSearch在一個線程中的執(zhí)行過程; 圖9展示了根據(jù)本發(fā)明一種實施例的檢索方法的流程; 圖10展示了一種實施例的檢索方法中關(guān)于網(wǎng)關(guān)模塊的處理步驟。 本發(fā)明的特征及優(yōu)點將通過實施例結(jié)合附圖進行詳細說明。
具體實施例方式
請參考圖2,檢索架構(gòu)包括資源搜集模塊、索引創(chuàng)建模塊、檢索服務(wù)模塊和web查 詢服務(wù)模塊。其中,索引創(chuàng)建模塊對p2p資源、ftp資源和http資源中的至少兩類資源建 立索引,檢索服務(wù)模塊包括P2p索引服務(wù)器、ftp索引服務(wù)器和http索引服務(wù)器中相應(yīng)的 至少兩者。在一種優(yōu)選的實施例中,索引創(chuàng)建模塊建立關(guān)于p2p資源、ftp資源和http資 源的三類索引,檢索服務(wù)模塊相應(yīng)包括P2p、 ftp和http三種索引服務(wù)器。
web查詢服務(wù)模塊包括web服務(wù)器和運行在web服務(wù)器上的公共網(wǎng)關(guān)接口 CGI, 公共網(wǎng)關(guān)接口 CGI提供用戶和系統(tǒng)之間交互的查詢接口。檢索服務(wù)模塊包括網(wǎng)關(guān)模塊 GateWay,網(wǎng)關(guān)模塊GateWay負責(zé)監(jiān)聽從公共網(wǎng)關(guān)接口 CGI傳來的查詢請求,并將監(jiān)聽到的 查詢請求分派給各個索引服務(wù)器,接收并匯總各個索引服務(wù)器的查詢結(jié)果,并通過公共網(wǎng) 關(guān)接口 CGI處理后返回給客戶端。
檢索架構(gòu)基本工作原理如下 用戶通過客戶端(例如Maze客戶端)查詢所需資源,包含查詢關(guān)鍵詞的查詢請求 通過公共網(wǎng)關(guān)接口 CGI傳遞到網(wǎng)關(guān)模塊GateWay ; 網(wǎng)關(guān)模塊GateWay監(jiān)聽到查詢請求,將查詢請求分派給各個索引服務(wù)器;
各個索引服務(wù)器根據(jù)查詢關(guān)鍵詞、利用相應(yīng)的文件索引進行資源查詢,并將得到 的查詢結(jié)果返回給網(wǎng)關(guān)模塊GateWay ; 網(wǎng)關(guān)模塊GateWay匯總、整合各索引服務(wù)器的返回結(jié)果,并將所得數(shù)據(jù)提交給公 共網(wǎng)關(guān)接口 CGI,最后經(jīng)由web服務(wù)器返回給客戶端。 圖3展示了利用網(wǎng)關(guān)模塊GateWay實現(xiàn)查詢的實施原理圖,其優(yōu)選采用C++語言
編程實現(xiàn)。具體說明如下 Client——即提請搜索的客戶端; Search Model——一個CGI程序,用于接收客戶端的查詢請求;
InitializeGateWay——用于初始化GateWay系統(tǒng)的程序,如初始化conf文 件,log文件等。其功能可通過realCGI. cpp文件中的main() 、 buildBadMD5List()、 initServers()以及Identify, cpp文件中的InitSetup()來實現(xiàn); RevSearchRequset——用于接收從Search Model傳送的查詢請求。其功能可通
過realCGI. cpp文件中的main () 、 commitSearch ()來實現(xiàn); Commitsearch——用于按照查詢請求在服務(wù)器運行查詢程序; IndexSvr 0-4、 Ftp Server、 HTML Server-分別為4個p2p索引服務(wù)器、一個
Ftp索引服務(wù)器和一個http索引服務(wù)器,提供各自的查詢服務(wù); CollectResult——收集從所有服務(wù)器中返回的查詢結(jié)果,提交給用戶。其功能可 通過realCGI. cpp文件中的main () 、 commitSearch ()來實現(xiàn)。
如圖4所示,網(wǎng)關(guān)模塊GateWay工作的基本流程如下
-Initialize Configure 初始化配置文件,打開寫有配置文件內(nèi)容的文本,并將配置文件內(nèi)容讀入緩沖區(qū) InitSetupBuffer中,以等待后面程序的分析。具體實現(xiàn)上,優(yōu)選在Identify, c卯中有兩個 InitSetup函數(shù),一個有參數(shù)chaWpath,一個沒有參數(shù),后者以NULL為參數(shù)直接調(diào)用了前 者,所以在GateWay的初始化中,配置文件直接使用了 bingle. conf文件。
-build BadMD5List 在優(yōu)選的實施例中,建立Bad MD5的表單以提供給后續(xù)的涉及MD5的查詢時使用。 具體做法是將badmd51ist. txt中的內(nèi)容讀入一個文件輸入流tmpif中,然后把tmpif中的 內(nèi)容建立badMD5List。在后續(xù)步驟中,例如在后文中將述及的CheckBadMD5時,可先判斷請 求查詢的文件的MD5是否在Bad MD5的表單中,并根據(jù)判斷結(jié)果選擇執(zhí)行下一步動作。
_Init Servers 初始化可用的Index服務(wù)器的相關(guān)參數(shù),包括服務(wù)器的ip、端口、類型。優(yōu)選將 InitSetipBuffer (其中是bingle. conf之中的內(nèi)容)中的數(shù)據(jù)寫入一個SearchServer類 的數(shù)組中,servers [h]. Host、 servers [h]. Port、 servers [h]. Version被寫入bingle. conf 中serverh的相應(yīng)的內(nèi)容,數(shù)組由指針servers指示。
-Great Thread Co皿ectServers 建立與多個IndexSvr、 Ftp Server、 HTML Server的連接。具體工作流程請參考 圖50其中,程序中共建有server皿m個SearchServer類,對應(yīng)server皿m個提供查詢的 服務(wù)器。每一個SearchServer類有一個socket (套接字)處理代碼數(shù)組,其包含sock皿m 個元素,GateWay從中找出sockFlag[i] = _1的第一個i,申請一個新的socket處理代碼newfd,用它和這個SearchServer類對應(yīng)的索引服務(wù)器(IndexSvr、 Ftp Server或者HTML Server)建立連接,并將sockFD[i]設(shè)置為newfd ;對所有servers中的IndexSvr做這個工 作。 利用select ()函數(shù),允許阻塞網(wǎng)關(guān)模塊GateWay的執(zhí)行直到需要網(wǎng)關(guān)模塊 GateWay時再為每個索引服務(wù)器提供服務(wù),且查詢?nèi)蝿?wù)隊列采用waitcount技術(shù),這樣,網(wǎng) 關(guān)模塊GateWay可以更有效地處理向多個索引服務(wù)器查詢的情況。
-Great commitSearch 請參考圖6, commitSearch具體可以是一個函數(shù),其作用是取出查詢隊列中的一 個元素并完成相應(yīng)的查詢。該步驟優(yōu)選又包括以下過程 __Prepare Socket for search request (艮卩Prepare Socket for CGICo皿ect) 采用socket方式建立與CGI程序的連接。 __Accept and Push Search request into mClientSock 用戶的查詢請求提交給CGI程序,網(wǎng)關(guān)模塊GateWay從CGI程序中提取出查詢請 求,如果提取查詢請求成功,就將查詢請求放入GateWay的自己的查詢隊列中,即將這些請 求的socket放入一個隊列mClientSock中。
__Great Thread commitSearch Creat Thread commitSearch的含義是,創(chuàng)建一個線程讓commitSearch函數(shù)執(zhí)行, 也就是說對于每個查詢?nèi)蝿?wù)都建立一個線程來完成查詢,這樣就實現(xiàn)了多線程操作。
如圖6所示, 一旦建立好與查詢程序即CGI模塊的連接,就開始時刻監(jiān)聽CGI程 序,一旦有一個查詢請求進入,就把查詢請求放入查詢隊列(這個隊列是個共享數(shù)據(jù)區(qū)域, 由多個CommitSearch線程共享),并且創(chuàng)建一個CommitSearch線程來完成這個查詢,也就 是對于每個查詢都創(chuàng)建一個線程完成查詢。 一種優(yōu)選的實施例中,通過線程來完成查詢的 處理過程如圖7所示,網(wǎng)關(guān)模塊GateWay向CGI程序返回的幾個結(jié)果,包括總的查詢結(jié)果 數(shù)result皿m、向用戶顯示的結(jié)果數(shù)show皿m、查詢結(jié)果的數(shù)據(jù)長度outputlen以及查詢結(jié) 果數(shù)據(jù)data。 如圖8所示,commitSearch函數(shù)在一個線程中的執(zhí)行過程如下
首先,從隊列mClientSock中取出一個等待處理的socket處理代碼(執(zhí)行 mClientSock. pop ()),接收查詢請求(執(zhí)行Recv request)并存入一個SearchSt潔t結(jié)構(gòu) 中,如果是MD5查詢,優(yōu)選先調(diào)用checkBadMD5()函數(shù)來看是否為Bad MD5。接著,網(wǎng)關(guān)模 塊GateWay分別與CGI和索引服務(wù)器通信,將來自CGI的用戶查詢請求發(fā)送到servernum 個索引服務(wù)器中(即執(zhí)行for(i = 0 ;i < server皿m ;i++)這一段操作)。然后,網(wǎng)關(guān)模 塊GateWay接收從各個索引服務(wù)器返回的查詢結(jié)果并將這些結(jié)果整合。最后,網(wǎng)關(guān)模塊 GateWay將整合過的查詢結(jié)果通過CGI提交給用戶。 根據(jù)本發(fā)明的另一方面,還提供一種用于本發(fā)明的檢索架構(gòu)的檢索方法。如圖9 所示,優(yōu)選的實施例包括以下處理步驟 步驟A、搜集互聯(lián)網(wǎng)上的p2p資源、ftp資源和http資源的相關(guān)文件信息;
步驟B、根據(jù)搜集結(jié)果建立與資源類別相應(yīng)的文件索引;
步驟C、接收用戶的查詢請求; 步驟D、響應(yīng)查詢請求,分別利用相應(yīng)的文件索引進行相應(yīng)的p2p式或ftp式或http式檢索; 步驟E、整合查詢結(jié)果并將其返回給用戶。 優(yōu)選的實施例中,在步驟C,查詢請求先經(jīng)網(wǎng)絡(luò)服務(wù)器上的公共網(wǎng)關(guān)接口解析,然 后由網(wǎng)關(guān)模塊分派至各索引服務(wù)器,在步驟D,各索引服務(wù)器利用解析出的關(guān)鍵詞進行對應(yīng) 于服務(wù)器類型的查詢,并將各查詢結(jié)果送由網(wǎng)關(guān)模塊整合;在步驟E中,經(jīng)整合的查詢結(jié)果 先返回至網(wǎng)關(guān)模塊,再送入公共網(wǎng)關(guān)接口進行處理,然后由網(wǎng)絡(luò)服務(wù)器以網(wǎng)頁形式向用戶 展現(xiàn)。 如圖10所示,優(yōu)選地,步驟D之前還包括如下處理步驟
初始化關(guān)于網(wǎng)關(guān)模塊的配置文件; 初始化索引服務(wù)器的相關(guān)參數(shù),其包括索引服務(wù)器的IP、端口及類型; 建立網(wǎng)關(guān)模塊與索引服務(wù)器的連接,優(yōu)選地,按套接字方式建立連接; 步驟D中,網(wǎng)關(guān)模塊根據(jù)查詢請求啟動在索引服務(wù)器上的相應(yīng)查詢。該步驟優(yōu)選
又包括如下處理步驟 以套接字方式建立網(wǎng)關(guān)模塊與公共網(wǎng)關(guān)接口的連接; 網(wǎng)關(guān)模塊從公共網(wǎng)關(guān)接口中提取查詢請求,如果提取查詢請求成功,則將查詢請 求的放入查詢隊列中; 為查詢隊列的每一個查詢請求分別創(chuàng)建一個線程來完成查詢。 關(guān)于本發(fā)明檢索方法更詳細的內(nèi)容可參考本發(fā)明檢索架構(gòu)的實施例的原理及工 作過程的說明。 根據(jù)本發(fā)明的優(yōu)選實施例,設(shè)置網(wǎng)關(guān)模塊GateWay ,有利地實現(xiàn)了 p2p搜索、ftp搜 索和http搜索的統(tǒng)一,給用戶一個唯一的查詢?nèi)肟趨s可以得到三種搜索的結(jié)果。其具有如 下顯著優(yōu)點 1.由于p2p搜索、http搜索的存在,彌補了單純的ftp搜索的資源不足的缺點。
2.由于p2p搜索以及ftp搜索的存在,彌補了 http搜索由于受到連接數(shù)、帶寬、服 務(wù)器負載等限制導(dǎo)致的下載速度不高的缺點。 3.由于ftp搜索、http搜索的存在,彌補了p2p搜索對于較為冷門的資源,下載不 穩(wěn)定的缺點。 4.網(wǎng)關(guān)模塊GateWay中還可以方便的加入更加復(fù)雜的對搜索結(jié)果的處理工作。如 果對于每一個用戶的每一次查詢都要啟動一個CGI服務(wù)進程,而進程的特性導(dǎo)致系統(tǒng)資源 占用率很大,對于大量的請求會嚴重導(dǎo)致系統(tǒng)負載過高。引入網(wǎng)關(guān)模塊GateWay,對于每個 查詢請求的處理啟動一個線程,則大大節(jié)約了系統(tǒng)資源,也使得這個模塊中可以對查詢以
及查詢結(jié)果進行更加復(fù)雜的處理,比如對于敏感詞的過濾、對于資源的多個鏡像的歸并地等。 需指出,索引創(chuàng)建模塊以及檢索服務(wù)模塊相互關(guān)聯(lián),由于三種檢索要統(tǒng)一在一起, 所以查詢索引的入口以及輸出的查詢結(jié)果格式應(yīng)統(tǒng)一,這一點也要反映在索引創(chuàng)建過程 中,從而滿足基于不同文件索引的統(tǒng)一查詢。 另外,盡管在本發(fā)明一種優(yōu)選的實施例中包括p2p搜索、ftp搜索和http搜索三 部分,應(yīng)了解,在本發(fā)明其它的實施例中,還可以將p2p搜索、ftp搜索、http搜索中任意兩 者整合起來形成檢索架構(gòu),同樣可以利用統(tǒng)一的如CGI程序?qū)崿F(xiàn)檢索,為用戶提供兩種檢索的結(jié)果。 以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定 本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在 不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的 保護范圍。
權(quán)利要求
一種檢索架構(gòu),包括資源搜集模塊,用于搜集互聯(lián)網(wǎng)上可下載的文件的信息;索引創(chuàng)建模塊,用于根據(jù)搜集結(jié)果建立文件索引;查詢服務(wù)模塊,用于接收用戶的查詢請求并向用戶返回查詢結(jié)果;和檢索服務(wù)模塊,用于響應(yīng)所述查詢請求,利用所述文件索引進行相應(yīng)的查詢;其特征在于,所述文件索引為對p2p資源、ftp資源和http資源中的至少兩類資源所建立的索引,所述檢索服務(wù)模塊包括p2p索引服務(wù)器、ftp索引服務(wù)器和http索引服務(wù)器中相應(yīng)的至少兩者,還包括網(wǎng)關(guān)模塊,用于接收所述查詢請求并分派到各所述索引服務(wù)器,以及接收、整合各所述索引服務(wù)器的查詢結(jié)果并返回給所述查詢服務(wù)模塊。
2. 如權(quán)利要求1所述的檢索架構(gòu),其特征在于,所述查詢服務(wù)模塊包括網(wǎng)絡(luò)服務(wù)器和 運行在所述網(wǎng)絡(luò)服務(wù)器上的公共網(wǎng)關(guān)接口 ,所述查詢請求經(jīng)所述公共網(wǎng)關(guān)接口解析后送至 所述索引服務(wù)器,所述查詢結(jié)果經(jīng)公共網(wǎng)關(guān)接口處理后提交給所述網(wǎng)絡(luò)服務(wù)器,所述網(wǎng)絡(luò) 服務(wù)器以網(wǎng)頁形式向用戶展現(xiàn)所述查詢結(jié)果。
3. 如權(quán)利要求2所述的檢索架構(gòu),其特征在于,所述網(wǎng)關(guān)模塊包括 配置初始化單元,用于初始化所述網(wǎng)關(guān)模塊的配置文件;索引服務(wù)器初始化單元,用于初始化所述索引服務(wù)器的相關(guān)參數(shù),包括索引服務(wù)器的 IP、端口及類型;連接建立單元,用于建立與所述公共網(wǎng)關(guān)接口和與所述索引服務(wù)器的連接;以及 查詢啟動單元,用于根據(jù)查詢請求啟動在所述索引服務(wù)器上的相應(yīng)查詢。
4. 如權(quán)利要求3所述的檢索架構(gòu),其特征在于,所述連接包括按套接字方式建立的連接。
5. 如權(quán)利要求3所述的檢索架構(gòu),其特征在于,所述查詢啟動單元包括線程創(chuàng)建單元, 用于為每個查詢請求創(chuàng)建一個用以完成當(dāng)次查詢的線程。
6. —種檢索方法,其特征在于,包括以下步驟A、 搜集互聯(lián)網(wǎng)上的p2p資源、ftp資源和http資源中的至少兩類資源的相關(guān)文件信息;B、 根據(jù)搜集結(jié)果建立與資源類別相應(yīng)的文件索引;C、 接收用戶的查詢請求;D、 響應(yīng)所述查詢請求,分別利用所述相應(yīng)的文件索引進行相應(yīng)的p2p式或ftp式或http式檢索;E、 整合查詢結(jié)果并將其返回給用戶。
7. 如權(quán)利要求6所述的檢索方法,其特征在于,所述步驟C中,所述查詢請求先經(jīng)網(wǎng)絡(luò) 服務(wù)器上的公共網(wǎng)關(guān)接口解析,然后由網(wǎng)關(guān)模塊分派至各索引服務(wù)器,所述步驟D中,各索 引服務(wù)器利用解析出的關(guān)鍵詞進行對應(yīng)于服務(wù)器類型的查詢,并將各查詢結(jié)果送由所述網(wǎng) 關(guān)模塊整合;所述步驟E中,經(jīng)整合的查詢結(jié)果先返回至所述網(wǎng)關(guān)模塊,再送入所述公共網(wǎng) 關(guān)接口進行處理,然后由所述網(wǎng)絡(luò)服務(wù)器以網(wǎng)頁形式向用戶展現(xiàn)。
8. 如權(quán)利要求7所述的檢索方法,其特征在于,所述步驟D之前還包括如下步驟 Dl、初始化關(guān)于所述網(wǎng)關(guān)模塊的配置文件;D2、初始化所述索引服務(wù)器的相關(guān)參數(shù),其包括所述索引服務(wù)器的IP、端口及類型;D3、建立所述網(wǎng)關(guān)模塊與所述公共網(wǎng)關(guān)接口和所述索引服務(wù)器的連接;所述步驟D包括如下步驟D4、所述網(wǎng)關(guān)模塊根據(jù)查詢請求啟動在所述索引服務(wù)器上的相應(yīng)查詢。
9. 如權(quán)利要求8所述的檢索方法,其特征在于,所述步驟D3中,按套接字方式建立所述 連接。
10. 如權(quán)利要求9所述的檢索方法,其特征在于,所述步驟D4中,為所述查詢隊列的每 一個查詢請求分別創(chuàng)建一個線程來完成查詢。
全文摘要
本發(fā)明揭示了一種檢索架構(gòu),包括資源搜集模塊、索引創(chuàng)建模塊、查詢服務(wù)模塊和檢索服務(wù)模塊,索引創(chuàng)建模塊對p2p資源、ftp資源和http資源中的至少兩類資源所建立索引,檢索服務(wù)模塊包括p2p索引服務(wù)器、ftp索引服務(wù)器和http索引服務(wù)器中相應(yīng)的至少兩者以及網(wǎng)關(guān)模塊,網(wǎng)關(guān)模塊用于接收查詢請求并分派到各索引服務(wù)器,以及接收、整合各索引服務(wù)器的查詢結(jié)果并返回給查詢服務(wù)模塊。本發(fā)明還揭示了一種用于該檢索架構(gòu)的檢索方法。本發(fā)明可將三種搜索整合在一起,吸收三種搜索引擎的優(yōu)點并彌補各自的不足,為用戶提供一個資源豐富、穩(wěn)定、高速的下載平臺。
文檔編號G06F17/30GK101763392SQ20081024185
公開日2010年6月30日 申請日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者康澤宇, 徐陽, 李揮, 李曉明, 雷凱 申請人:北京大學(xué)深圳研究生院