[0042]進(jìn)一步可選的,上述目標(biāo)應(yīng)用對(duì)應(yīng)的配置信息還可以包含用于過濾條件。則站點(diǎn)地圖生成裝置具體可以從上述資源位置信息所指示的存儲(chǔ)位置,獲取符合該過濾條件的資源。舉例說明,某些資源有一定的時(shí)效性,需要按照資源的生成時(shí)間進(jìn)行過濾,則過濾條件可以是選擇生成時(shí)間在指定時(shí)間點(diǎn)之后的資源,意味著在該時(shí)間點(diǎn)之前的資源將被過濾掉。
[0043]103、站點(diǎn)地圖生成裝置根據(jù)上述生成規(guī)則信息對(duì)上述資源進(jìn)行處理,獲得上述目標(biāo)應(yīng)用的站點(diǎn)地圖文件,以統(tǒng)一管理多個(gè)目標(biāo)應(yīng)用的站點(diǎn)地圖文件。
[0044]在獲取生成站點(diǎn)地圖文件所需的資源后,站點(diǎn)地圖生成裝置根據(jù)配置信息中的生成規(guī)則信息,對(duì)該資源進(jìn)行處理,獲得目標(biāo)應(yīng)用的站點(diǎn)地圖文件。
[0045]其中,不同目標(biāo)應(yīng)用有其不同的特點(diǎn),所使用的生成規(guī)則信息可能會(huì)不同。本實(shí)施例提供的方法支持各種生成規(guī)則信息。下面舉例說明:
[0046]如果上述生成規(guī)則信息為用于指示直接使用URL生成站點(diǎn)地圖文件的URL指示標(biāo)識(shí),則上述根據(jù)資源位置信息獲取的資源本身就是完整的URL,基于此,站點(diǎn)地圖生成裝置可以直接將資源作為URL添加到目標(biāo)應(yīng)用的站點(diǎn)地圖文件中;
[0047]如果上述生成規(guī)則信息為URL拼裝規(guī)則,則上述根據(jù)資源位置信息獲取的資源是URL中的部分信息,例如URL中攜帶的關(guān)鍵詞信息、ID信息以及數(shù)據(jù)加密信息等?;诖?,站點(diǎn)地圖生成裝置可以根據(jù)URL拼裝規(guī)則對(duì)上述資源進(jìn)行拼裝處理獲得URL,將所獲得的URL添加到目標(biāo)應(yīng)用對(duì)應(yīng)的站點(diǎn)地圖文件中。
[0048]在此說明,生成站點(diǎn)地圖文件所需的資源量一般會(huì)比較大,而站點(diǎn)地圖文件所能存放的URL是有限的,目前實(shí)踐中一個(gè)站點(diǎn)地圖文件包含的URL數(shù)量上限是50000條URL,因此,上述生成的目標(biāo)應(yīng)用對(duì)應(yīng)的站點(diǎn)地圖文件可能是多個(gè),即在一個(gè)站點(diǎn)地圖文件寫滿之后,開始寫下一個(gè)站點(diǎn)地圖文件,直到所有URL均被寫入站點(diǎn)地圖文件為止。
[0049]在一可選實(shí)施方式中,站點(diǎn)地圖生成裝置可以按照預(yù)設(shè)周期,為生成列表中涉及的所有目標(biāo)應(yīng)用生成站點(diǎn)地圖文件,實(shí)現(xiàn)站點(diǎn)地圖文件的全量生成。在此說明,在該實(shí)施方式中,有可能有些目標(biāo)應(yīng)用的站點(diǎn)地圖文件已經(jīng)存在,則在重新生成站點(diǎn)地圖文件之后可以直接覆蓋已經(jīng)存在的,相當(dāng)于對(duì)站點(diǎn)地圖文件的更新。
[0050]在另一可選實(shí)施方式中,站點(diǎn)地圖生成裝置在生成站點(diǎn)地圖文件之前,可以判斷目標(biāo)應(yīng)用的站點(diǎn)地圖文件是否已存在;如果判斷出目標(biāo)應(yīng)用的站點(diǎn)地圖文件不存在,則直接執(zhí)行上述根據(jù)生成規(guī)則信息對(duì)上述資源進(jìn)行處理,獲得目標(biāo)應(yīng)用的站點(diǎn)地圖文件的步驟;如果判斷出目標(biāo)應(yīng)用的站點(diǎn)地圖文件已存在,則進(jìn)一步判斷上述資源位置信息指示的存儲(chǔ)位置是否在本地。
[0051]如果判斷出上述資源位置信息指示的存儲(chǔ)位置不在本地,或者如果判斷出上述資源位置信息指示的存儲(chǔ)位置在本地,但上述生成規(guī)則信息和上述根據(jù)資源位置信息獲取的資源中的至少一個(gè)發(fā)生了變化,則執(zhí)行上述根據(jù)生成規(guī)則信息對(duì)上述資源進(jìn)行處理,獲得目標(biāo)應(yīng)用的站點(diǎn)地圖文件的步驟。在生成站點(diǎn)地圖文件之后,站點(diǎn)地圖生成裝置用新生成的目標(biāo)應(yīng)用的站點(diǎn)地圖文件替換已存在的目標(biāo)應(yīng)用的站點(diǎn)地圖文件,從而實(shí)現(xiàn)對(duì)目標(biāo)應(yīng)用的站點(diǎn)地圖文件的更新。
[0052]進(jìn)一步可選的,如果判斷出上述資源位置信息指示的存儲(chǔ)位置在本地,且上述生成規(guī)則信息和上述根據(jù)資源位置信息獲取的資源均未發(fā)生變化,則可以不用為該目標(biāo)應(yīng)用重新生成站點(diǎn)地圖文件。
[0053]在上述實(shí)施方式中,站點(diǎn)地圖生成裝置通過判斷,只有在需要為目標(biāo)應(yīng)用生成站點(diǎn)地圖文件的情況(例如目標(biāo)應(yīng)用的站點(diǎn)地圖文件不存在,或者目標(biāo)應(yīng)用的站點(diǎn)地圖文件需要更新)下才去為目標(biāo)應(yīng)用生成站點(diǎn)地圖文件,有利于減輕站點(diǎn)地圖生成裝置的處理負(fù)擔(dān),有利于節(jié)約站點(diǎn)地圖生成裝置的資源。
[0054]進(jìn)一步,在生成目標(biāo)應(yīng)用的站點(diǎn)地圖文件之后,為了便于應(yīng)用和管理站點(diǎn)地圖文件,需要為該目標(biāo)應(yīng)用的站點(diǎn)地圖文件生成索引(index),該索引包括該目標(biāo)應(yīng)用下所有站點(diǎn)地圖文件的標(biāo)識(shí),例如這里的標(biāo)識(shí)可以是站點(diǎn)地圖文件的名稱。
[0055]在生成目標(biāo)應(yīng)用的站點(diǎn)地圖文件及其對(duì)應(yīng)的索引之后,需要考慮站點(diǎn)地圖文件及其索引的存儲(chǔ)問題。例如,所有目標(biāo)應(yīng)用的站點(diǎn)地圖文件可以存儲(chǔ)在站點(diǎn)地圖生成裝置本地,每個(gè)目標(biāo)應(yīng)用的站點(diǎn)地圖文件都有自己的命名空間。
[0056]因?yàn)槟承┯蛎聮斓膽?yīng)用非常多,站點(diǎn)地圖文件占據(jù)的磁盤空間非??捎^,有可能需要很大的磁盤空間;另外,如果站點(diǎn)地圖文件存儲(chǔ)在站點(diǎn)地圖生成裝置本地,那么目標(biāo)應(yīng)用所在集群的服務(wù)器上都要有一份備份,因此從節(jié)約磁盤空間和資源共享的角度考慮,優(yōu)選可以考慮使用分布式文件系統(tǒng)存儲(chǔ)站點(diǎn)地圖文件及相關(guān)信息。
[0057]由上述可見,本實(shí)施例由站點(diǎn)地圖生成裝置負(fù)責(zé)為各應(yīng)用生成站點(diǎn)地圖文件,將站點(diǎn)地圖文件的生成從應(yīng)用中獨(dú)立出來,不需要在應(yīng)用中開發(fā)專門用于生成站點(diǎn)地圖文件的子模塊或子任務(wù),有利于提高站點(diǎn)地圖文件的生成效率,降低成本。
[0058]在上述實(shí)施例的基礎(chǔ)上,在一可選實(shí)施方式中,站點(diǎn)地圖生成裝置接收目標(biāo)應(yīng)用所在服務(wù)器轉(zhuǎn)發(fā)的來自客戶端的訪問請(qǐng)求,該訪問請(qǐng)求包括客戶端請(qǐng)求訪問的站點(diǎn)地圖文件的標(biāo)識(shí)和所述客戶端的標(biāo)識(shí);之后,站點(diǎn)地圖生成裝置根據(jù)上述站點(diǎn)地圖文件的標(biāo)識(shí),獲取對(duì)應(yīng)的站點(diǎn)地圖文件,并根據(jù)客戶端的標(biāo)識(shí),將所獲取的站點(diǎn)地圖文件提供客戶端。
[0059]具體的,當(dāng)客戶端需要訪問某個(gè)目標(biāo)應(yīng)用的站點(diǎn)地圖文件時(shí),可以向該目標(biāo)應(yīng)用所在的服務(wù)器發(fā)送訪問請(qǐng)求;對(duì)該目標(biāo)應(yīng)用所在的服務(wù)器來說,接收客戶端發(fā)送的用于請(qǐng)求訪問該目標(biāo)應(yīng)用的站點(diǎn)地圖文件的訪問請(qǐng)求;該訪問請(qǐng)求包括客戶端的標(biāo)識(shí)和該目標(biāo)應(yīng)用的站點(diǎn)地圖文件的標(biāo)識(shí)。目標(biāo)應(yīng)用所在的服務(wù)器將該訪問請(qǐng)求轉(zhuǎn)發(fā)給站點(diǎn)地圖生成裝置;站點(diǎn)地圖生成裝置根據(jù)訪問請(qǐng)求中目標(biāo)應(yīng)用的站點(diǎn)地圖文件的標(biāo)識(shí),從統(tǒng)一管理的站點(diǎn)地圖文件中獲取目標(biāo)應(yīng)用的站點(diǎn)地圖文件,并根據(jù)訪問請(qǐng)求中客戶端的標(biāo)識(shí),將所獲取的目標(biāo)應(yīng)用的站點(diǎn)地圖文件發(fā)送給客戶端。其中,站點(diǎn)地圖生成裝置采用上述實(shí)施例生成多個(gè)應(yīng)用的站點(diǎn)地圖文件,并統(tǒng)一管理多個(gè)應(yīng)用的站點(diǎn)地圖文件。
[0060]在此說明,這里的客戶端可以是任何具有訪問站點(diǎn)地圖文件需求的裝置,主要是指搜索引擎爬蟲。
[0061]由于站點(diǎn)地圖文件是由站點(diǎn)地圖生成裝置生成和負(fù)責(zé)管理的,所以客戶端需要通過站點(diǎn)地圖生成裝置來訪問站點(diǎn)地圖文件。在一可選實(shí)施方式中,客戶端可以直接向站點(diǎn)地圖生成裝置發(fā)送訪問請(qǐng)求,但由于站點(diǎn)地圖協(xié)議要求站點(diǎn)地圖文件通過應(yīng)用的域名訪問,所以這種方式需要對(duì)現(xiàn)有客戶端以及站點(diǎn)地圖協(xié)議進(jìn)行修改。為了不影響客戶端和現(xiàn)有站點(diǎn)地圖協(xié)議,本實(shí)施例通過在目標(biāo)應(yīng)用所在服務(wù)器上設(shè)置反向代理功能,將來自客戶端的訪問請(qǐng)求轉(zhuǎn)發(fā)到站點(diǎn)地圖生成裝置,這樣客戶端可以像現(xiàn)有技術(shù)那樣直接向目標(biāo)應(yīng)用所在服務(wù)器發(fā)送訪問請(qǐng)求,不需要做任何改變,也符合現(xiàn)有站點(diǎn)地圖協(xié)議的要求。
[0062]舉例說明,假設(shè)目標(biāo)應(yīng)用所在服務(wù)器為阿帕奇(apache) web服務(wù)器,則一條反向代理的設(shè)置方式如下:
[0063]RewriteRule'/sitemap(/*)$http://sitemap, alibaba-1nc.com/*[L, P, QSA]
[0064]上述反向代理的作用解釋如下:將當(dāng)前應(yīng)用所在服務(wù)器的/sitemap目錄下的全部請(qǐng)求都轉(zhuǎn)發(fā)到http://sitemap, alibaba-1nc.com指向的站點(diǎn)地圖生成裝置的同名目錄之下,并且使用apache提供的透明代理,在代理的過程中,轉(zhuǎn)發(fā)前后,查詢請(qǐng)求串保持一致。
[0065]其中,在目標(biāo)應(yīng)用所在服務(wù)器上設(shè)置的反向代理是非常輕量、簡(jiǎn)單的,對(duì)目標(biāo)應(yīng)用的侵入性非常低,且一次配置后續(xù)不用再做任何管理,極大程度提高了目標(biāo)應(yīng)用的開發(fā)效率。
[0066]圖2為本發(fā)明另一實(shí)施例提供的站點(diǎn)地圖生成方法的流程示意圖。如圖2所示,該方法包括:
[0067]2a、站點(diǎn)地圖生成裝置接收用戶或需要生成站點(diǎn)地圖文件的應(yīng)用所在服務(wù)器提交的該應(yīng)用對(duì)應(yīng)的配置信息,該配置信息包括該應(yīng)用的標(biāo)識(shí)、資源位置信息、生成規(guī)則信息和過濾條件。
[0068]可選的,站點(diǎn)地圖裝置可以向用戶提供一交互界面,用戶可以通過交互界面向站點(diǎn)地圖裝置提供上述配置信息。
[0069]本實(shí)施例以生成站點(diǎn)地圖文件所需的資源存儲(chǔ)在數(shù)據(jù)庫(kù)中為例進(jìn)行說明,則上述資源位置信息可以包括數(shù)據(jù)庫(kù)標(biāo)識(shí)和數(shù)據(jù)庫(kù)中數(shù)據(jù)表的標(biāo)識(shí),進(jìn)一步還可以包括SQL語句。
[0070]2b、站點(diǎn)地圖生成裝置將上述應(yīng)用的配置信息作為一條記錄存儲(chǔ)到生成列表中。
[0071]2c、在預(yù)設(shè)處理周期到達(dá)時(shí),從上述生成列表中獲取一條記錄,并將該記錄的狀態(tài)標(biāo)記為處理中。
[0072]在此說明,在處理周期到達(dá)之前,站點(diǎn)地圖裝置可能會(huì)收到多個(gè)應(yīng)用的配置信息,將每個(gè)應(yīng)用的配置信息作為一條記錄存儲(chǔ)到生成列表中,即生成列表包括多條記錄。
[0073]2d、站點(diǎn)地圖裝置讀取記錄中的配置信息,根據(jù)配置信息中的資源位置信息,向數(shù)據(jù)庫(kù)發(fā)送查詢請(qǐng)求,該查詢請(qǐng)求包括上述數(shù)據(jù)表的標(biāo)識(shí)和上述過濾條件。
[0074]可選的,該查詢請(qǐng)求可以是上述SQL語句。
[0075]2e、數(shù)據(jù)庫(kù)根據(jù)上述查詢請(qǐng)求,從相應(yīng)數(shù)據(jù)表中獲取滿足上述過濾條件的資