專利名稱:用于建立搜索索引的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及全局錨文本處理。
背景技術(shù):
萬(wàn)維網(wǎng)(也稱為WWW或"Web")是一些支持網(wǎng)頁(yè)的因特網(wǎng)服 務(wù)器的集合,該網(wǎng)頁(yè)可以包括到其他網(wǎng)頁(yè)的鏈接。統(tǒng)一資源定位符 (URL)表明了網(wǎng)頁(yè)的位置。另外,每個(gè)網(wǎng)頁(yè)可以包含例如文本、圖 形、音頻和/或4見頻內(nèi)容。例如,第一個(gè)網(wǎng)頁(yè)可以包含到第二個(gè)網(wǎng)頁(yè) 的鏈接。當(dāng)在第一個(gè)網(wǎng)頁(yè)中選定該鏈接時(shí),典型地顯示第二個(gè)網(wǎng)頁(yè)。Web瀏覽器是一種用于定位并顯示網(wǎng)頁(yè)的軟件應(yīng)用。目前,在網(wǎng) 絡(luò)上有數(shù)以億計(jì)的網(wǎng)頁(yè)。Web搜索引擎用于基于一些標(biāo)準(zhǔn)檢索網(wǎng)絡(luò)上的網(wǎng)頁(yè)(例如通過 Web瀏覽器進(jìn)入)。也就是說,Web搜索引擎設(shè)計(jì)為返回給定關(guān)鍵字 查詢的相關(guān)網(wǎng)頁(yè)。例如,針對(duì)公司內(nèi)網(wǎng)搜索引擎而發(fā)起的查詢"HR,, 期望返回內(nèi)網(wǎng)中與人力資源(HR)相關(guān)的相關(guān)頁(yè)面。Web搜索引擎 使用使得搜索詞(例如關(guān)鍵字)與網(wǎng)頁(yè)產(chǎn)生聯(lián)系的索引技術(shù)。錨點(diǎn)可以描述為到文檔的鏈接或路徑(例如URL)。錨文本可以 描述為與指向文檔的^各徑或鏈接(例如URL)相關(guān)聯(lián)的文本。例如, 錨文本可以是Web文檔中標(biāo)注或封裝超文本的文本鏈接的文本。錨 文本由Web搜索引擎收集并與目標(biāo)文檔相關(guān)聯(lián)。另外,錨文本和目 標(biāo)文檔一起進(jìn)行索引。錨文本也可以描述為在超文本標(biāo)記語(yǔ)言(HTML)文檔("參考" 文檔)中找到的用以注釋到另一個(gè)文檔("目標(biāo)"文檔)的鏈接的內(nèi) 容。錨文本在詞法上包含在錨標(biāo)簽(<A>...</A>)內(nèi)部。錨文本可以改善搜索質(zhì)量,因?yàn)樗鼘?duì)人類編輯者的關(guān)于目標(biāo)文檔的相關(guān)區(qū)域的判 斷進(jìn)行編碼。雖然為要使錨文本可搜索,就必須對(duì)錨文本進(jìn)行索引從 而使得該錨文本就像是目標(biāo)文檔內(nèi)容的 一部分一樣,但該錨文本實(shí)際 上是作為其他內(nèi)容,即參考文檔的 一部分而進(jìn)入搜索系統(tǒng)的。當(dāng)Web搜索引擎處理全體文檔時(shí)(例如對(duì)文檔進(jìn)行檢索并進(jìn)行 索引),不可能在存儲(chǔ)器中保留所有文檔直到知道所有交叉鏈接。這 樣,傳統(tǒng)的解決方案是分別對(duì)文檔內(nèi)容和錨文本進(jìn)行編目,然后運(yùn)行 離線全局整合過程以對(duì)用于索引的錨文本和文檔內(nèi)容進(jìn)行組合。如果整合推遲直到搜集到全體文檔的所有內(nèi)容(也就是檢索), 那么所有的錨文本都是可用的,并且組合索引只需要建立一次。但是 如果這樣做了 ,則直到搜集整個(gè)全體文檔之后才能建立僅內(nèi)容索引 (content-only index )。作為替代,僅內(nèi)容索引是可寫并且可用的,但 是直到整合階段之后才可能進(jìn)行錨文本搜索。這樣,在本領(lǐng)域中需要改善全局錨文本處理。發(fā)明內(nèi)容本發(fā)明提供了 一種用于建立搜索索引的方法、計(jì)算機(jī)程序產(chǎn)品和 系統(tǒng)。當(dāng)建立搜索索引并使用搜索索引以響應(yīng)一個(gè)或多個(gè)搜索請(qǐng)求 時(shí),維護(hù)錨點(diǎn)信息庫(kù),其中錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目 標(biāo)文檔和與從參考文檔到目標(biāo)文檔的鏈接相關(guān)聯(lián)的錨文本;接收用于 處理的文檔;在錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目, 要處理的文檔被標(biāo)識(shí)為目標(biāo)文檔;從所標(biāo)識(shí)的條目中的每個(gè)條目檢索 錨文本。將檢索的錨文本存儲(chǔ)到文檔的搜索索引的條目中。
現(xiàn)在參考附圖,其中貫穿整個(gè)附圖,同樣的參考標(biāo)號(hào)表示對(duì)應(yīng)的 部分:圖1以框圖示出了根據(jù)本發(fā)明某些實(shí)施例的計(jì)算環(huán)境。圖2示出了根據(jù)本發(fā)明某些實(shí)施例的實(shí)現(xiàn)為為處理準(zhǔn)備錨點(diǎn)的邏輯。圖3示出了根據(jù)某些圖4示出了根據(jù)某些實(shí)施例的在異步上下文中執(zhí)行的邏輯, 圖5示出了根據(jù)某些實(shí)施例的數(shù)據(jù)流。 圖6示出了根據(jù)本發(fā)明某些實(shí)施例的用于執(zhí)行文檔搜索的: 圖7示出了根據(jù)某些實(shí)施例的可以使用的系統(tǒng)體系結(jié)構(gòu)。
具體實(shí)施方式
在以下描述中參考附圖,附圖形成描述的一部分,并且示出了本 發(fā)明的多個(gè)實(shí)施例。應(yīng)當(dāng)理解,在不偏離本發(fā)明范圍的情況下,可以 利用其它實(shí)施例并且可以進(jìn)行結(jié)構(gòu)上和操作上的改變。圖1以框圖示出了根據(jù)本發(fā)明某些實(shí)施例的計(jì)算環(huán)境??蛻舳擞?jì) 算機(jī)100通過網(wǎng)絡(luò)190連接到服務(wù)器計(jì)算機(jī)120??蛻舳擞?jì)算機(jī)100 可以包括任意本領(lǐng)域已知的計(jì)算設(shè)備,諸如服務(wù)器、大型機(jī)、工作站、 個(gè)人計(jì)算機(jī)、手持計(jì)算機(jī)、膝上型電話設(shè)備、網(wǎng)絡(luò)裝置等等。網(wǎng)絡(luò) 190可以包括任意類型的網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、 因特網(wǎng)、內(nèi)網(wǎng)等等??蛻舳擞?jì)算機(jī)100包括系統(tǒng)存儲(chǔ)器104,該存儲(chǔ) 器可以在易失性和/或非易失性設(shè)備中實(shí)現(xiàn)??梢栽谙到y(tǒng)存儲(chǔ)器104 中執(zhí)行一個(gè)或多個(gè)客戶端應(yīng)用IIO和查看器應(yīng)用112。查看器應(yīng)用112 提供了啟動(dòng)對(duì)一組文檔的搜索的接口。在某些實(shí)施例中,查看器應(yīng)用 112是Web瀏覽器,數(shù)據(jù)存儲(chǔ)裝置170存儲(chǔ)令牌(而不是所搜集的原 始文檔),并且查看器應(yīng)用112顯示概覽(從令牌創(chuàng)建)和指向原始 位置中的原始文檔的URL。令牌可以描述為出現(xiàn)在文檔中的項(xiàng)(例 如,詞、數(shù)字、語(yǔ)標(biāo)順序或其他相近的符號(hào)串)。服務(wù)器計(jì)算機(jī)120包括系統(tǒng)存儲(chǔ)器122,該存儲(chǔ)器可以在易失性 和/或非易失性設(shè)備中實(shí)現(xiàn)。在系統(tǒng)存儲(chǔ)器122中執(zhí)行搜索引擎130。 在某些實(shí)施例中,搜索引擎包括搜集器組件132、靜態(tài)分級(jí)組件134、 文檔分析組件136、副本4全測(cè)組件138、 4苗文本組件140和索引組件 142。盡管組件132、 134、 136、 138、 140和142作為分立組件示出,
但是組件132、 134、 136、 138、 140和142的功能可以在比示出的更 少或更多的組件或與示出的組件不同的組件中實(shí)現(xiàn)。另外,組件132、 134、 136、 138、 140和142的功能可以在Web應(yīng)用服務(wù)器計(jì)算機(jī)或 其他連接到服務(wù)器計(jì)算機(jī)120上的服務(wù)器計(jì)算機(jī)上實(shí)現(xiàn)。另外,在系 統(tǒng)存儲(chǔ)器122中執(zhí)行一個(gè)或多個(gè)服務(wù)器應(yīng)用160。在某些實(shí)施例中,使用文檔分析組件136、錨文本組件140和索 引組件142實(shí)現(xiàn)全局錨文本處理150。服務(wù)器計(jì)算機(jī)120使得客戶端計(jì)算機(jī)IOO可以對(duì)至少一個(gè)數(shù)據(jù)存 儲(chǔ)裝置170 (例如數(shù)據(jù)庫(kù))中的數(shù)據(jù)進(jìn)行訪問。盡管示出了單個(gè)的數(shù) 據(jù)存儲(chǔ)裝置170,但為了容易理解,數(shù)據(jù)存儲(chǔ)裝置170中的數(shù)據(jù)可以 存儲(chǔ)在連接到服務(wù)器計(jì)算機(jī)120的其他計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)裝置中。一 個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)裝置包括錨點(diǎn)信息庫(kù)152、重建議程表154和搜索 索引156。在某些實(shí)施例中,錨點(diǎn)信息庫(kù)152中的每個(gè)條目包括至少一個(gè)三 元組(D、 Ti和錨文本),其中D是參考文檔,Ti是目標(biāo)文檔,錨 文本是包含在從參考文檔到目標(biāo)文檔的鏈接的鏈接標(biāo)簽中的文本。錨 點(diǎn)信息庫(kù)152中的每個(gè)條目可以包含附加的信息,諸如靜態(tài)分值 (score)、參考文檔的語(yǔ)言或參考文檔的指紋/校驗(yàn)和,其可以幫助避 免使用來自于相同參考文檔的同樣副本的鏈接。在某些實(shí)施例中,重建議程表154中的每個(gè)條目包含文檔的標(biāo)識(shí) 符(例如文檔的URL),其錨文本將在搜索索引156中用異步處理更 新。對(duì)于每個(gè)標(biāo)識(shí)的文檔,有至少一個(gè)新的或更新的指向該文檔的鏈 接。在某些實(shí)施例中,搜索索引156包含文檔內(nèi)容和與指向該文檔的 鏈接相關(guān)的錨文本。在這種實(shí)施例中,文檔內(nèi)容和錨文本可以獨(dú)立更 新。在某些實(shí)施例中,錨文本不獨(dú)立更新(例如在其中錨文本更新需 要對(duì)整個(gè)文檔重新進(jìn)行索引的系統(tǒng))。在某些實(shí)施例中,搜索索引156 可一直用于搜索,但是進(jìn)行了新的索引的文檔可能會(huì)在稍有延遲之后 才出現(xiàn)在搜索結(jié)果中,這是因?yàn)闉榈玫礁玫男阅芏鴮?duì)磁盤的寫入進(jìn) 行了緩沖。另外,操作者控制臺(tái)180執(zhí)行一個(gè)或多個(gè)應(yīng)用182并且用于訪問 服務(wù)器計(jì)算機(jī)120和數(shù)據(jù)存儲(chǔ)裝置170。數(shù)據(jù)存儲(chǔ)裝置170可以包括大量存儲(chǔ)設(shè)備,諸如直接訪問存儲(chǔ)設(shè) 備(DASD)、簡(jiǎn)單磁盤捆綁(JBOD)、獨(dú)立冗余磁盤陣列(RAID)、 虛擬化設(shè)備等等。數(shù)據(jù)存儲(chǔ)裝置170包括結(jié)合本發(fā)明某些實(shí)施例而使 用的數(shù)據(jù)。圖2示出了根據(jù)本發(fā)明某些實(shí)施例的實(shí)現(xiàn)為為處理準(zhǔn)備錨點(diǎn)的 邏輯??刂圃诜娇?00開始,錨文本與每個(gè)錨點(diǎn)相關(guān)聯(lián)。這可以通過 例如每個(gè)創(chuàng)建錨點(diǎn)的用戶完成。錨點(diǎn)可以描述為從源(或"參考,,) 文檔到目標(biāo)文檔的路徑或鏈接(例如URL)。在方框202中,獲得將由搜索引擎130索引的文檔。在某些實(shí)施 例中,將文檔發(fā)布或推送(例如,報(bào)紙上的文章就有可能是這種情況) 到索引組件142。在某些實(shí)施例中,搜集器組件132發(fā)現(xiàn)、獲取并存 儲(chǔ)文檔。在某些實(shí)施例中,搜集器組件13 2可以基于例如某個(gè)標(biāo)準(zhǔn)(例 如在上個(gè)月內(nèi)訪問的文檔)發(fā)現(xiàn)文檔。另外,搜集器組件132可以發(fā) 現(xiàn)一個(gè)或多個(gè)直接(例如數(shù)據(jù)存儲(chǔ)裝置170)或間接(例如通過另一 個(gè)計(jì)算設(shè)備(沒有示出)連接到服務(wù)器計(jì)算機(jī)120)連接的數(shù)據(jù)存儲(chǔ) 中的文檔。在某些實(shí)施例中,搜集器組件132發(fā)現(xiàn)、獲取并存儲(chǔ)數(shù)據(jù) 存儲(chǔ)裝置170中的令牌和URL。所搜集的文檔可以稱為"文檔集合"。在方框204中,文檔分析組件136執(zhí)行針對(duì)每個(gè)文檔的分析。特 別地,文檔分析組件136解析并用令牌表示文檔,并對(duì)每個(gè)文檔確定 書寫每個(gè)文檔所用的語(yǔ)言、提取錨文本并執(zhí)行諸如文檔編目和分類之 類的其他任務(wù)。存儲(chǔ)語(yǔ)言信息用于以后使用。例如,文檔分析組件 136確定文檔中使用的基本語(yǔ)言是否為英語(yǔ)、日語(yǔ)、德語(yǔ)等等。作為 提取錨文本的一部分,文檔分析組件136也將鄰近的類與每個(gè)錨點(diǎn)相 關(guān)聯(lián)。鄰近的類可以描述為指定源文檔與目標(biāo)文檔如何接近(例如, 它們是否在同一服務(wù)器上,以及如果是的話,它們是否在同一目錄 中)。另外,所提取的錨文本準(zhǔn)備好由錨文本組件140處理。
在方框206中,靜態(tài)分級(jí)組件134檢查存儲(chǔ)的文檔并給這些文檔 分配等級(jí)。等級(jí)可以描述為源文檔相對(duì)于已經(jīng)由搜集器組件132存儲(chǔ) 的其他文檔的重要性??梢允褂萌我忸愋偷姆旨?jí)技術(shù)。例如,更頻繁 訪問的文檔可以得到更高的等級(jí)。在方框208中,錨文本組件140 處理錨文本。在某些實(shí)施例中,搜索索引156增量式地連續(xù)更新。錨文本處理 在兩種上下文中發(fā)生同步和異步。在某些包括副本檢測(cè)的實(shí)施例中,只要添加了新的從參考文檔 ("R")到目標(biāo)文檔("T" ) ( R-〉T )的錨點(diǎn),錨文本組件140就重新 計(jì)算目標(biāo)文檔T和任何副本的錨文本。在某些實(shí)施例中,當(dāng)計(jì)算目標(biāo) 文檔T的目標(biāo)錨文本時(shí),也可以包括指向T的副本的鏈接。在某些包括靜態(tài)分級(jí)的實(shí)施例中,如果頁(yè)面有大量指向錨文本的 鏈接,則靜態(tài)分級(jí)信息可以用于對(duì)錨文本區(qū)分優(yōu)先級(jí),因此,不是將 來自這些鏈接的全部錨文本合并成目標(biāo)錨文本,而是將來自可配置數(shù) 量的最有意義的參考文檔的錨文本合并成目標(biāo)錨文本。在某些包括語(yǔ)言識(shí)別的實(shí)施例中,用于參考文檔的語(yǔ)言識(shí)別可以 幫助判斷目標(biāo)文檔的語(yǔ)言。也就是說,如果目標(biāo)文檔主要具有來自一 種語(yǔ)言的文檔的鏈接,那么目標(biāo)文檔很可能使用了相同的語(yǔ)言。圖3示出了根據(jù)某些實(shí)施例的在同步上下文中執(zhí)行的邏輯。圖3 的邏輯在建立搜索索引156并使用該搜索索引156以響應(yīng)一個(gè)或多個(gè) 搜索請(qǐng)求時(shí)執(zhí)行??刂圃诜娇?00開始,文檔分析組件136接收用于 首次處理的文檔。在方框302中,對(duì)于文檔中指向其他文檔的鏈接 ("導(dǎo)出,,鏈接),將數(shù)據(jù)添加到錨點(diǎn)信息庫(kù)152中。特別地,由于文 檔分析組件136正在解析該文檔,因此當(dāng)文檔分析組件136找到導(dǎo)出 鏈接時(shí),文檔分析組件136將數(shù)據(jù)添加到錨點(diǎn)信息庫(kù)。例如,當(dāng)對(duì)文 檔D (例如HTML文檔)進(jìn)行索引時(shí),文檔D包含的指向其他文檔 的任何錨文本在錨點(diǎn)信息庫(kù)152中都被記錄為一個(gè)三元組(D, Ti, 文本)。在方框304中,對(duì)于文檔中指向其他文檔的鏈接,將數(shù)據(jù)添加到 重建議程表154。例如,如果文檔包括三個(gè)導(dǎo)出鏈接,每個(gè)導(dǎo)出鏈接 指向一個(gè)目標(biāo)文檔,就用這三個(gè)目標(biāo)文檔的URL更新重建議程表 154。在方框306中,對(duì)于從參考文檔指向錨點(diǎn)信息庫(kù)152中正在處理 的文檔的鏈接,從錨點(diǎn)信息庫(kù)152中檢索錨文本并添加到搜索索引 156。特別地,文檔分析組件136在錨點(diǎn)信息庫(kù)152中定位如下條目, 對(duì)于該條目,正在處理的文檔被列為目標(biāo)文檔,從那些來自錨點(diǎn)信息 庫(kù)152的條目檢索錨文本,并將該錨文本轉(zhuǎn)發(fā)到索引組件142以添加 到搜索索引56。對(duì)于文檔D,除非該文檔是"種子"URL,否則文檔D就會(huì)被搜 集,這是因?yàn)槲臋nD被較早處理的文檔中的鏈接所參考。"種子"URL 可以描述為由管理員手工輸入的URL,而不是由搜集器組件132作 為另一個(gè)文檔中的鏈接發(fā)現(xiàn)的。在搜集開始時(shí),搜集器組件132不具 有鏈接,必須用用以開始搜集的一些URL來進(jìn)行"種子化"。當(dāng)首次 搜集這些文檔時(shí),沒有其他的文檔參考它們,但是隨著搜集的進(jìn)行, 搜集器組件132可能找到指向種子URL的其他文檔。這樣,到處理 文檔D時(shí),可能有來自多個(gè)這種對(duì)文檔D進(jìn)行參考的文檔的錨文本。 因此,在首次索引文檔D之前,查詢錨文本錨點(diǎn)信息庫(kù)152,并且當(dāng) 在搜索索引156中首次對(duì)文檔D進(jìn)行索引時(shí),包括了任何已知的文 檔D4苗文本。在方框400開始,搜索引擎130開始對(duì)重建議程表154進(jìn)行異步處理。 在某些實(shí)施例中,當(dāng)負(fù)載(也就是等待進(jìn)行索引的文檔)足夠低(例 如幾乎為零)時(shí),為異步錨文本重建循環(huán)給定一個(gè)固定的時(shí)間分片。 在某些可選擇的實(shí)施例中,重建可以周期性地(例如每四個(gè)小時(shí)一次) 或基于一些事件的發(fā)生(例如正在處理100個(gè)新文檔)發(fā)生。實(shí)施例 用增量式方式建立錨文本,而不需要同時(shí)大容量重建全部錨文本。這 樣,在任意給定的時(shí)間,可能有一個(gè)或多個(gè)如下目標(biāo)文檔,對(duì)于該目 標(biāo)文本,自從最后計(jì)算該目標(biāo)文檔以來已經(jīng)發(fā)現(xiàn)了新鏈接。在某些實(shí)
施例中,不是連續(xù)運(yùn)行異步錨文本重建循環(huán)(這有可能產(chǎn)生過高的系統(tǒng)負(fù)載),圖4的邏輯一次計(jì)算針對(duì)多個(gè)目標(biāo)的錨文本。在可選擇的 實(shí)施例中,異步錨文本重建循環(huán)可以連續(xù)運(yùn)行。這樣,實(shí)施例增量式 地建立目標(biāo)文檔的錨文本,將變化反映為新鏈接并發(fā)現(xiàn)相關(guān)聯(lián)的錨文 本,而不是全局地進(jìn)行該過程,在全局情況下,不管鏈接是否改變, 都要周期性地重新計(jì)算全部錨文本。在方框402中,從第一個(gè)文檔開始,錨文本組件140選擇重建議 程表154中下一個(gè)文檔(也就是通過選擇表示該文檔的URL)。在方 框404中,錨文本組件140確定重建議程表154中的所有文檔是否都 已經(jīng)被選定或者所分配的時(shí)間分片是否已經(jīng)過期。如果是,則處理繼 續(xù)到方框410,否則,處理繼續(xù)到方框406。這樣,如果沒有更多需 要重建的目標(biāo)或如果由搜索引擎130分配的時(shí)間分片已經(jīng)過期(即使 在重建議程表154中有更多的URL),異步錨文本重建循環(huán)就停止。如果在方框410中已經(jīng)選定所有的文檔,那么搜索引擎130等待 直到它確定系統(tǒng)負(fù)載允許花費(fèi)一些時(shí)間重建一些錨文本,此時(shí)處理繼 續(xù)到方框400。在方框406中,錨文本組件140使用錨點(diǎn)信息庫(kù)152來找到選定 文檔的錨文本。特別地,錨文本組件140識(shí)別其中選定文檔是目標(biāo)的 錨點(diǎn)信息庫(kù)150中的條目,并且檢索這些條目中的錨文本。在方框 408中,錨文本組件140更新選定文檔的搜索索引156中的錨文本。 在某些實(shí)施例中,獨(dú)立更新搜索索引156中的文檔內(nèi)容的錨文本。在 某些實(shí)施例中,不獨(dú)立更新錨文本(例如在其中錨文本更新需要對(duì)整 個(gè)文檔重新進(jìn)行索引的系統(tǒng))。處理從方框406繼續(xù)到方框402。這樣,在異步上下文中,當(dāng)對(duì)文檔D (例如HTML文檔)進(jìn)行 索引時(shí),將文檔D的導(dǎo)出鏈接添加到錨點(diǎn)信息庫(kù)152。添加到錨點(diǎn)信 息庫(kù)152的每個(gè)條目包含屬于針對(duì)某個(gè)目標(biāo)文檔T的已索引內(nèi)容的錨 文本片段。因此,每個(gè)新的錨點(diǎn)信息庫(kù)條目都使得文檔T的當(dāng)前已索 引內(nèi)容過時(shí)。這樣,實(shí)施例周期性地重建索引條目的錨文本。另外, 因?yàn)橹亟ㄗh程表154保持了已知需要更新的目標(biāo)文檔的列表,所以通
過只更新這些目標(biāo)文檔的錨文本,可獲得更高的效率。在某些實(shí)施例中,在背景處理中,與搜索并行地,錨文本組件140從重建議程表154中依次拉取目標(biāo)文檔,查詢錨點(diǎn)信息庫(kù)152以 找到每個(gè)目標(biāo)文檔的所有錨文本參考,并且更新搜索索引156中的每 個(gè)目標(biāo)文檔的索引條目以反映錨文本。每當(dāng)更新搜索索引156中的目 標(biāo)文檔的索引條目時(shí),都會(huì)改善該目標(biāo)文檔的搜索質(zhì)量和已索引項(xiàng), 得到在搜索質(zhì)量上的連續(xù)改善。在某些實(shí)施例中,錨點(diǎn)信息庫(kù)152實(shí)現(xiàn)為具有三列的關(guān)系表并且 自然地映射成關(guān)系數(shù)據(jù)庫(kù)。在一些情況下,對(duì)屬于給定參考文檔的所 有條目都搜索這個(gè)表,并且在一些情況下,對(duì)屬于給定目標(biāo)文檔的那 些條目搜索這個(gè)表,因此使用了兩個(gè)索引。在某些實(shí)施例中,錨點(diǎn)信息庫(kù)152實(shí)現(xiàn)為如下索引,該索引可以 配置為存儲(chǔ)可再次使用的數(shù)據(jù)(也就是錨文本)的完整副本,而不是 存儲(chǔ)在檢索時(shí)不需要其原始形式(也就是對(duì)于參考URL)的已進(jìn)行 索引(用令牌表示)的字符串的副本。就速度而言,關(guān)系表和索引實(shí) 施例都執(zhí)行得很好。在某些實(shí)施例中,錨點(diǎn)信息庫(kù)152實(shí)現(xiàn)為一個(gè)或多個(gè)平面文件。 通過這種實(shí)施例,由于條目可以附加到平面文件的末尾,所以插入非 ???。另外,通過這種實(shí)施例,檢索可能需要進(jìn)行磁盤分級(jí)以將數(shù)據(jù) 縮減為唯一的條目,并且在參考和目標(biāo)URL上的重復(fù)順序由分級(jí)順 序表示。在某些實(shí)施例中,抽象的"存儲(chǔ)"應(yīng)用程序接口 (API)將索引 和關(guān)系數(shù)據(jù)庫(kù)實(shí)施例隱藏在更高級(jí)別的錨文本組件140所需要的一 組常用操作后面。存儲(chǔ)API通過移除包含已移除文檔的錨點(diǎn)信息庫(kù)條 目和對(duì)受影響的目標(biāo)文檔進(jìn)行標(biāo)記以便進(jìn)行更新,來處理對(duì)文檔的刪 除。當(dāng)不是刪除參考文檔,而是用新版本來進(jìn)行更新時(shí),移除包含該 文檔作為錨點(diǎn)信息庫(kù)152中的參考文檔的舊條目,并且將該文檔的新 版本中的錨點(diǎn)添加到錨點(diǎn)信息庫(kù)152。這與對(duì)該參考文檔的錨文本的
刪除和插入操作等同。也就是說,當(dāng)已經(jīng)用新內(nèi)容更新文檔時(shí),將該文檔是其參考文檔的錨點(diǎn)信息庫(kù)152中的現(xiàn)有條目與該文檔中當(dāng)前一組錨點(diǎn)進(jìn)行比較。 從錨點(diǎn)信息庫(kù)152刪除不再與文檔內(nèi)容匹配的每個(gè)條目(例如,包括 在更新的文檔中不存在的錨點(diǎn)的條目)。對(duì)于文檔中的每個(gè)新錨點(diǎn), 將一個(gè)新條目添加到錨點(diǎn)信息庫(kù)152 (也就是將源自文檔內(nèi)容的當(dāng)前 狀態(tài)的任意新條目添加到錨點(diǎn)信息庫(kù)152)。將從錨點(diǎn)信息庫(kù)152刪 除或添加到錨點(diǎn)信息庫(kù)152的任意條目的目標(biāo)文檔添加到重建議程 表154。在某些實(shí)施例中,重建議程表154可以描述為對(duì)先入先出(FIFO ) 語(yǔ)義和設(shè)定語(yǔ)義(也就是沒有重復(fù))進(jìn)行組合的列表,并用于跟蹤哪 些目標(biāo)文檔需要更新。在某些實(shí)施例中,在進(jìn)行集中索引期間,錨文本組件140可能需 要將大量未處理的更新記憶一段時(shí)間,比采用存儲(chǔ)器內(nèi)解決方案所期 望的數(shù)量更大,時(shí)間更長(zhǎng)。這樣,重建議程表154可以實(shí)現(xiàn)為受可擴(kuò) 展為存儲(chǔ)數(shù)以億計(jì)的條目的具有層級(jí)結(jié)構(gòu)的磁盤存儲(chǔ)支持的保留順 序的哈希組。將條目(例如URL)添加到存儲(chǔ)器內(nèi)的表中直到達(dá)到 一個(gè)可配置的限度,此時(shí)將表轉(zhuǎn)儲(chǔ)到磁盤。首先從最舊的磁盤文件返 回所要獲取的內(nèi)容,就好像從持久型環(huán)緩沖器一樣。副本不會(huì)出現(xiàn)在 表中或在已保存的 一 個(gè)批次中,但是兩個(gè)單獨(dú)的批處理可以包含共同 的條目。為了節(jié)省存儲(chǔ)器,這些實(shí)施例會(huì)接受一些副本,并且性能良 好。圖5示出了根據(jù)某些實(shí)施例的數(shù)據(jù)流。文檔500可以是另一個(gè)參 考文檔502的目標(biāo)文檔,也可以是目標(biāo)文檔(T1, T2)的參考文檔 (Rl )。目標(biāo)文檔Tl具有錨文本al ,而目標(biāo)文檔T2具有錨文本a2。 當(dāng)處理文檔500時(shí),更新錨點(diǎn)信息庫(kù)510以包括從參考文檔Rl到每 個(gè)目標(biāo)文檔Tl和T2的條目。由于錨點(diǎn)信息庫(kù)152包括目標(biāo)文檔Tl 和T2的錨文本,更新重建議程表520以包括目標(biāo)文檔Tl和T2的標(biāo) 識(shí)符(例如URL)。當(dāng)異步錨文本循環(huán)開始時(shí),將更新目標(biāo)文檔Tl
和T2的錨文本。實(shí)施例能夠支持其他形式的鏈接分析。也就是說,在任意實(shí)施例 中,整合到搜索系統(tǒng)中的錨點(diǎn)信息庫(kù)152和重建議程表154可以支持 文檔(例如HTML文檔)集合中其他類型的鏈接分析。例如,實(shí)施 例支持對(duì)包含"斷開"的鏈接的頁(yè)面(例如參考了丟失的或不可用的 文檔)的搜索。特別地,對(duì)于在其中搜集文檔的實(shí)施例,可以掃描搜 索索引156以找到下載狀態(tài)為"錯(cuò)誤"的文檔,而對(duì)于在其中推送文 檔的實(shí)施例,可能會(huì)處理"已推送的刪除文檔命令"。在參考了丟失 的或不可用的文檔的任意實(shí)施例中,則搜索錨點(diǎn)信息庫(kù)152以找到并 報(bào)告(例如向搜索引擎管理員或向內(nèi)容擁有者,諸如網(wǎng)站擁有者)指 向丟失的或不可用的文檔的參考文檔(也就是,該參考文檔是具有斷 開的鏈接的參考文檔)。作為示例,然后網(wǎng)站擁有者能夠更新參考文 檔。特別地,當(dāng)文檔丟失或者不可用時(shí)(例如,該文檔的下載狀態(tài)是"錯(cuò)誤"或者存在針對(duì)該文檔的"已推送的刪除文檔命令"),定位該 文檔是其目標(biāo)文檔的錨點(diǎn)信息庫(kù)中的一個(gè)或多個(gè)條目,并且將每個(gè)標(biāo) 識(shí)的條目中的參考文檔報(bào)告給搜索引擎管理員和/或參考文檔的內(nèi)容 擁有者。另外,當(dāng)文檔丟失或者不可用時(shí)(例如,該文檔的下載狀態(tài) 是"錯(cuò)誤"或者存在針對(duì)該文檔的"已推送的刪除文檔命令"),定位 并刪除該文檔是其參考文檔的錨點(diǎn)信息庫(kù)152中的條目,并且在重建 議程表154中注冊(cè)這些條目的目標(biāo)文檔。作為另 一個(gè)示例,實(shí)施例通過生成圖形來支持對(duì)站點(diǎn)連通性的研 究,該圖形示出了使用錨點(diǎn)信息庫(kù)152的節(jié)點(diǎn)的連接。另外,實(shí)施例 支持基于通過計(jì)算錨點(diǎn)信息庫(kù)152中文檔的參考文檔(例如入鏈接(in-link))數(shù)量而得到的入鏈接計(jì)數(shù)來根據(jù)頁(yè)面或站點(diǎn)的重要性/普 及性調(diào)節(jié)搜索結(jié)果權(quán)重。實(shí)施例也支持帶不同標(biāo)簽的"標(biāo)簽"和"社 會(huì)書簽"的形式。此上下文中的標(biāo)簽是不同形式的錨文本。在支持進(jìn) 行附加的環(huán)境中,標(biāo)簽在外部"附加,,到文檔(例如用戶可以用作為 標(biāo)簽的關(guān)鍵字來注釋文檔),而不是嵌入到文檔的內(nèi)容中。這樣,標(biāo) 簽與錨文本類似,因?yàn)闃?biāo)簽表示文檔主題的用戶^L覽。因此,錨點(diǎn)信 息庫(kù)152可以作為錨文本的替代或補(bǔ)充而存儲(chǔ)標(biāo)簽。通過這種標(biāo)簽, 實(shí)施例能夠在這些附件("社會(huì)網(wǎng)絡(luò)"環(huán)境)中找到使用關(guān)鍵字的文檔。另外,實(shí)施例適用于任意種類的可以附加到文檔的反饋,包括表 明用戶喜歡該頁(yè)面的投票或點(diǎn)擊率數(shù)據(jù)(例如用戶點(diǎn)擊搜索結(jié)果的事 實(shí)可以被認(rèn)為是對(duì)該頁(yè)面的"投票,,)??梢栽阱^點(diǎn)信息庫(kù)152中包括 任意這種信息。這些分析中的一些改善了搜索系統(tǒng)本身的功能,而有些有益于內(nèi)容管理員和用戶。圖6示出了根據(jù)本發(fā)明某些實(shí)施例的用于執(zhí)行文檔搜索的邏輯。 控制在方框600開始,用戶通過查看器應(yīng)用112提交搜索請(qǐng)求。在方 框602中,搜索引擎130執(zhí)行該搜索請(qǐng)求。在方框604中,搜索引擎 返回包括錨文本處理的針對(duì)搜索請(qǐng)求的搜索結(jié)果。在方框606中,查看器應(yīng)用112顯示該搜索結(jié)果。這樣,實(shí)施例在對(duì)全體文檔進(jìn)行處理的早期將錨點(diǎn)添加到搜索索引156,而不是使用戶等待對(duì)要添加到搜索索引的錨文本的離線整合 過程。這樣,通過某些實(shí)施例,與搜索并行地,錨文本處理連續(xù)發(fā)生。 這提供了增量式錨文本處理。在某些實(shí)施例中,因?yàn)楦碌腻^文本變 得可用,所以有時(shí)可以對(duì)文檔內(nèi)容和錨文本進(jìn)^亍多次索引。但是,通 過某些實(shí)施例,可以提高搜索質(zhì)量和搜索索引156中錨文本的早期可 用性。JAVA是一個(gè)注冊(cè)商標(biāo),或Sun微系統(tǒng)公司在美國(guó)和/或其他國(guó)家 的普通法標(biāo)^己(common law mark )。附加實(shí)施例細(xì)節(jié)可以使用標(biāo)準(zhǔn)編程和/或工程技術(shù)將所述操作實(shí)現(xiàn)為方法、計(jì)算 機(jī)程序產(chǎn)品或裝置以生產(chǎn)軟件、固件、硬件及其任意組合。每個(gè)實(shí)施例可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或既包含 硬件單元又包含軟件單元的實(shí)施例的形式。實(shí)施例可以用軟件實(shí)現(xiàn),
其包括但不限于固件、駐留軟件、微碼等等。進(jìn)一 步地,實(shí)施例可以采取可以從計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介 質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,該介質(zhì)提供了由計(jì)算機(jī)或任意指令 執(zhí)行系統(tǒng)使用或結(jié)合計(jì)算機(jī)或任意指令執(zhí)行系統(tǒng)而使用的程序代碼。 出于本描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)可以是可以包 含、存儲(chǔ)、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié) 合指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的程序的任意裝置。所述操作可以實(shí)現(xiàn)為在計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)中維護(hù) 的代碼,其中處理器可以從計(jì)算機(jī)可讀介質(zhì)讀取并執(zhí)行代碼。該介質(zhì) 可以是電子的、磁的、光學(xué)的、電磁的、紅外的或半導(dǎo)體的系統(tǒng)(或 裝置或設(shè)備)或傳播媒介。計(jì)算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài) 存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、硬盤、光盤、磁存儲(chǔ)介質(zhì)(例如 硬盤驅(qū)動(dòng)器、軟盤、磁帶等等)、易失性和非易失性存儲(chǔ)器設(shè)備(例如隨機(jī)訪問存儲(chǔ)器(RAM)、 DRAM、 SRAM、只讀存儲(chǔ)器(ROM )、 PROM、 EEPROM、閃速存儲(chǔ)器、固件、可編程邏輯陣列(PLA)等 等)。光盤的當(dāng)前示例包括壓縮光盤-只讀存儲(chǔ)器(CD-ROM )、光盤-讀/寫(CD-R/W)和DVD。實(shí)現(xiàn)所述操作的代碼可以進(jìn)一步在硬件邏輯(例如集成電路芯 片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)中實(shí)現(xiàn)。 更進(jìn)一步地,實(shí)現(xiàn)所述操作的代碼可以在"傳輸信號(hào),,中實(shí)現(xiàn),其中 傳輸信號(hào)可以通過空間或通過諸如光纖、銅線之類的傳輸媒介傳播。 在其中對(duì)代碼或邏輯進(jìn)行編碼的傳輸信號(hào)可以進(jìn)一 步包括無線信號(hào)、 衛(wèi)星傳輸、無線電波、紅外信號(hào)、藍(lán)牙等等。在其中對(duì)代碼或邏輯進(jìn) 行編碼的傳輸信號(hào)能夠由發(fā)射臺(tái)發(fā)送并由接收臺(tái)接收,其中編碼在傳備上被解碼并存儲(chǔ)在硬件或計(jì)算機(jī)可讀介質(zhì)中。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)、硬件 邏輯和/或可以在其中實(shí)現(xiàn)代碼的傳輸信號(hào)。當(dāng)然,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,在不偏離實(shí)施例范圍的情況下,可以對(duì)這一配置
進(jìn)行很多修改,并且該計(jì)算機(jī)程序產(chǎn)品可以包括本領(lǐng)域中已知的任意 合適的信息承栽介質(zhì)。以示例的方式,術(shù)語(yǔ)"邏輯"可以包括軟件、硬件、固件和/或 軟件和硬件的組合。某些實(shí)施例可以針對(duì)用于由人來部署計(jì)算基礎(chǔ)設(shè)施或自動(dòng)地處 理將計(jì)算機(jī)可讀代碼整合到計(jì)算系統(tǒng)的方法,其中代碼與計(jì)算系統(tǒng)相 結(jié)合,能夠執(zhí)行所述實(shí)施例的操作。圖2、圖3、圖4和圖6的邏輯描述了按照特定順序發(fā)生的特定 操作。在可選擇的實(shí)施例中,某些邏輯操作可以按不同的順序執(zhí)行, 可以被修改或移除。而且,可以將操作添加到上述邏輯并且仍然遵循 上述實(shí)施例。進(jìn)一步地,此處所述的操作可以順序發(fā)生或某些操作可 以被并行處理,或者被描述為由單個(gè)過程執(zhí)行的操作可以由分布式過 程來執(zhí)4亍。所示出的圖2、圖3、圖4和圖6的邏輯可以用軟件、硬件、可 編程和不可編程門陣列邏輯或用硬件、軟件或門陣列邏輯的 一些組合 來實(shí)現(xiàn)。圖7示出了根據(jù)某些實(shí)施例的可以使用的系統(tǒng)體系結(jié)構(gòu)700???戶端計(jì)算機(jī)100和/或服務(wù)器計(jì)算機(jī)120可以實(shí)現(xiàn)系統(tǒng)體系結(jié)構(gòu)700。 系統(tǒng)體系結(jié)構(gòu)700適合于存儲(chǔ)和/或執(zhí)行程序代碼,并且包括至少一 個(gè)直接地或通過系統(tǒng)總線720間接地與存儲(chǔ)器單元704連接的處理器 702。存儲(chǔ)器單元704可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本 地存儲(chǔ)器、大容量存儲(chǔ)以及高速緩沖存儲(chǔ)器,該高速緩沖存儲(chǔ)器為了 減少在執(zhí)行期間必須從大容量存儲(chǔ)獲取代碼的次數(shù)而提供了對(duì)至少 部分程序代碼的臨時(shí)存儲(chǔ)。存儲(chǔ)器單元704包括操作系統(tǒng)705和一個(gè) 或多個(gè)計(jì)算機(jī)程序706。輸入/輸出(I/O)設(shè)備712、 714 (包括但不限于鍵盤、顯示器、 指示設(shè)備等等)可以直接地或通過中間1/0控制器710連接到系統(tǒng)。網(wǎng)絡(luò)適配器708也可以連接到系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過 中間專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)來與其他數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程打印機(jī)或
存儲(chǔ)設(shè)備連接。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是幾種當(dāng)前可用類型的網(wǎng)絡(luò)適配器708。系統(tǒng)體系結(jié)構(gòu)700可以連接到存儲(chǔ)裝置716 (例如非易失性存儲(chǔ) 區(qū)域,諸如磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等等)。存儲(chǔ)裝置領(lǐng)域中已知的方式,存儲(chǔ)716中的計(jì)算機(jī)程序706可以被加載進(jìn)存儲(chǔ) 器單元704并由處理器702執(zhí)行。系統(tǒng)體系結(jié)構(gòu)700可以包括比示出的更少的組件、此處沒有示出 的附加組件,或者示出的組件和附加組件的一些組合。系統(tǒng)體系結(jié)構(gòu) 700可以包括任意本領(lǐng)域已知的計(jì)算設(shè)備,諸如大型機(jī)、服務(wù)器、個(gè) 人計(jì)算機(jī)、工作站、筆記本電腦、手持計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)裝置、 虛擬設(shè)備、存儲(chǔ)控制器等等。已經(jīng)為了說明和描述的目的而提出了對(duì)本發(fā)明實(shí)施例的前述描 述。該描述并非旨在窮舉或?qū)?shí)施例限制為所公開的精確形式。根據(jù) 上述內(nèi)容,很多修改和變更都是可能的。實(shí)施例的范圍不應(yīng)受到這一 詳細(xì)描述的限制,而應(yīng)由所附權(quán)利要求書來限制。上面的描述、示例 和數(shù)據(jù)-提供了對(duì)制造過程的詳細(xì)描述和對(duì)實(shí)施例組成部分的使用。由 于在不偏離實(shí)施例的本質(zhì)和范圍的情況下,可以得到很多實(shí)施例,因此這些實(shí)施例均在所附權(quán)利要求書或任意以后提交的權(quán)利要求書以 及與之等同的技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1.一種用于建立搜索索引的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括當(dāng)建立所述搜索索引并使用所述搜索索引以響應(yīng)一個(gè)或多個(gè)搜索請(qǐng)求時(shí),維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈接相關(guān)聯(lián)的錨文本;接收用于處理的文檔;在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目,所述要處理的文檔被標(biāo)識(shí)為目標(biāo)文檔;從所述標(biāo)識(shí)的條目中的每個(gè)條目檢索錨文本;以及將所述檢索的錨文本存儲(chǔ)到所述文檔的所述搜索索引的條目中。
2. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述文檔包 括一個(gè)或多個(gè)導(dǎo)出鏈接,每個(gè)導(dǎo)出鏈接指向一個(gè)目標(biāo)文檔,所述方法 進(jìn)一步包括對(duì)于每個(gè)所述導(dǎo)出鏈接,向所述錨點(diǎn)信息庫(kù)添加一個(gè)條目,其中 所述要處理的文檔是每個(gè)目標(biāo)文檔的參考文檔。
3. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述文檔包 括一個(gè)或多個(gè)導(dǎo)出鏈接,每個(gè)導(dǎo)出鏈接指向一個(gè)目標(biāo)文檔,所述方法 進(jìn)一步包括向重建議程表中添加一個(gè)條目,其中所述條目標(biāo)識(shí)所述目標(biāo)文檔。
4. 根據(jù)權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 對(duì)于在所述重建議程表中的每個(gè)條目中標(biāo)識(shí)的每個(gè)目標(biāo)文檔,異步地,使用所述錨點(diǎn)信息庫(kù)找到所述目標(biāo)文檔的錨文本;以及 更新所述目標(biāo)文檔的搜索索引的條目中的錨文本,其中所述目標(biāo)文檔的錨文本增量式地更新。
5. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 當(dāng)文檔丟失或不可用時(shí),在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條 目,所述文檔是參考文檔;對(duì)于所述一個(gè)或多個(gè)條目中的每個(gè)條目,在重建議程表中注 冊(cè)該條目的目標(biāo)文檔;以及從所述錨點(diǎn)信息庫(kù)刪除所述一個(gè)或多個(gè)條目。
6. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 當(dāng)文檔丟失或不可用時(shí),在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條 目,所述文檔是目標(biāo)文檔;以及向搜索1擎管理員和所述參考文檔的內(nèi)容擁有者中的一個(gè) 報(bào)告每個(gè)所述標(biāo)識(shí)的條目中的所述參考文檔。
7. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 生成圖形以便能夠研究站點(diǎn)連通性,所述圖形示出了使用所述錨點(diǎn)信息庫(kù)的節(jié)點(diǎn)的連接。
8. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括基于通過計(jì)算所述錨點(diǎn)信息庫(kù)中文檔的參考文檔的數(shù)量而確定 的入鏈接計(jì)數(shù)來調(diào)節(jié)與所述文檔相關(guān)聯(lián)的搜索結(jié)果權(quán)重。
9. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述錨點(diǎn)信 息庫(kù)包括標(biāo)簽,該標(biāo)簽是文檔的用戶注釋。
10. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 當(dāng)已經(jīng)用新內(nèi)容更新所述文檔時(shí),將所述文檔是其參考文檔的所述錨點(diǎn)信息庫(kù)中的現(xiàn)有條目 與所述文檔中當(dāng)前的一組錨點(diǎn)進(jìn)行比較;從所述錨點(diǎn)信息庫(kù)中刪除每個(gè)不再與所述文檔內(nèi)容匹配的條目;對(duì)于所述文檔中的每個(gè)新錨點(diǎn),向所述錨點(diǎn)信息庫(kù)中添加一個(gè)新條目;以及在重建議程表中注冊(cè)從所述錨點(diǎn)信息庫(kù)中刪除的或者添加 到所述錨點(diǎn)信息庫(kù)中的任意條目的目標(biāo)文檔。
11. 一種用于維護(hù)搜索索引的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈接相關(guān)聯(lián)的錨 文本;維護(hù)重建議程表,其中所述重建議程表中的每個(gè)條目標(biāo)識(shí)一個(gè)目 標(biāo)文檔;以及對(duì)于在所述重建議程表中的每個(gè)條目中標(biāo)識(shí)的每個(gè)目標(biāo)文檔,異 步地,使用所述錨點(diǎn)信息庫(kù)找到所述目標(biāo)文檔的錨文本;以及 更新所述目標(biāo)文檔的搜索索引的條目中的錨文本,其中所述 目標(biāo)文檔的錨文本增量式地更新。
12. 根據(jù)權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,進(jìn)一步包括 接收用于處理的文檔;在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目,所 述要處理的文檔^皮標(biāo)識(shí)為目標(biāo)文檔;從所述標(biāo)識(shí)的條目中的每個(gè)條目檢索錨文本;以及將所述檢索的錨文本存儲(chǔ)到所述文檔的所述搜索索引的條目中。
13. —種用于建立搜索索引的系統(tǒng),包括 能夠執(zhí)行操作的邏輯,所述操作包括當(dāng)建立所述搜索索引并使用所述搜索索引以響應(yīng)一個(gè)或多個(gè)搜索請(qǐng)求時(shí),維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈 接相關(guān)聯(lián)的錨文本;接收用于處理的文檔;在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該 條目,所述要處理的文檔被標(biāo)識(shí)為目標(biāo)文檔;從所述標(biāo)識(shí)的條目中的每個(gè)條目檢索錨文本;以及 將所述檢索的錨文本存儲(chǔ)到所述文檔的所述搜索索引的條目中。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述文檔包括一個(gè)或多 個(gè)導(dǎo)出鏈接,每個(gè)導(dǎo)出鏈接指向一個(gè)目標(biāo)文檔,并且其中所述操作進(jìn) 一步包括對(duì)于每個(gè)所述導(dǎo)出鏈接,向所述錨點(diǎn)信息庫(kù)添加一個(gè)條目,其中 所述要處理的文檔是每個(gè)目標(biāo)文檔的參考文檔。
15. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述文檔包括一個(gè)或多 個(gè)導(dǎo)出鏈接,每個(gè)導(dǎo)出鏈接指向一個(gè)目標(biāo)文檔,并且其中所述操作進(jìn) 一步包括向重建議程表中添加一個(gè)條目,其中所述條目標(biāo)識(shí)所述目標(biāo)文檔。
16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述操作進(jìn)一步包括 對(duì)于在所述重建議程表中的每個(gè)條目中標(biāo)識(shí)的每個(gè)目標(biāo)文檔,異步地,使用所述錨點(diǎn)信息庫(kù)找到所述目標(biāo)文檔的錨文本;以及 更新所述目標(biāo)文檔的搜索索引的條目中的錨文本,其中所述 目標(biāo)文檔的錨文本增量式地更新。
17. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述操作進(jìn)一步包括 當(dāng)文檔丟失或不可用時(shí),在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條 目,所述文檔是參考文檔;對(duì)于所述一個(gè)或多個(gè)條目中的每個(gè)條目,在重建議程表中注 冊(cè)該條目的目標(biāo)文檔;以及從所述錨點(diǎn)信息庫(kù)刪除所述一個(gè)或多個(gè)條目。
18. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述操作進(jìn)一步包括 當(dāng)文檔丟失或不可用時(shí), 在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目,所述文檔是目標(biāo)文檔;以及向搜索引擎管理員和所述參考文檔的內(nèi)容擁有者中的一 個(gè)報(bào)告每個(gè)所述標(biāo)識(shí)的條目中的所述參考文檔。
19. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述操作進(jìn)一步包括 生成圖形以便能夠研究站點(diǎn)連通性,所述圖形示出了使用所述錨點(diǎn)信息庫(kù)的節(jié)點(diǎn)的連接。
20. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述操作進(jìn)一步包括 基于通過計(jì)算所述錨點(diǎn)信息庫(kù)中文檔的參考文檔的數(shù)量而確定的入鏈接計(jì)數(shù)來調(diào)節(jié)與所述文檔相關(guān)聯(lián)的搜索結(jié)果權(quán)重。
21. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述錨點(diǎn)信息庫(kù)包括標(biāo) 簽,該標(biāo)簽是文檔的用戶注釋。
22. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述操作進(jìn)一步包括 當(dāng)已經(jīng)用新內(nèi)容更新所述文檔時(shí),將所述文檔是其參考文檔的所述錨點(diǎn)信息庫(kù)中的現(xiàn)有條目 與所述文檔中當(dāng)前的一組錨點(diǎn)進(jìn)行比較;從所述錨點(diǎn)信息庫(kù)中刪除每個(gè)不再與所述文檔內(nèi)容匹配的條目;對(duì)于所述文檔中的每個(gè)新錨點(diǎn),向所述錨點(diǎn)信息庫(kù)中添加 一個(gè)新條目;以及在重建議程表中注冊(cè)從所述錨點(diǎn)信息庫(kù)中刪除的或者添加 到所述錨點(diǎn)信息庫(kù)中的任意條目的目標(biāo)文檔。
23. —種用于建立搜索索引的系統(tǒng),包括 能夠執(zhí)行操作的邏輯,所述操作包括維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參 考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈接相 關(guān)聯(lián)的錨文本;維護(hù)重建議程表,其中所述重建議程表中的每個(gè)條目標(biāo)識(shí) 一個(gè)目標(biāo)文檔;以及 對(duì)于在所述重建議程表中的每個(gè)條目中標(biāo)識(shí)的每個(gè)目標(biāo)文 檔,異步地,使用所述錨點(diǎn)信息庫(kù)找到所述目標(biāo)文檔的錨文本;以及 更新所述目標(biāo)文檔的搜索索引的條目中的錨文本,其中 所述目標(biāo)文檔的錨文本增量式地更新。
24. 根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述操作進(jìn)一步包括 接收用于處理的文檔;在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目,所 述要處理的文檔^皮標(biāo)識(shí)為目標(biāo)文檔;從所述標(biāo)識(shí)的條目中的每個(gè)條目沖企索錨文本;以及將所述檢索的錨文本存儲(chǔ)到所述文檔的所述搜索索引的條目中。
25. —種計(jì)算機(jī)程序產(chǎn)品,包括含有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可 用介質(zhì),其中所述計(jì)算機(jī)可讀程序在計(jì)算機(jī)上執(zhí)行時(shí)使得所述計(jì)算 機(jī)當(dāng)建立所述搜索索引并使用所述搜索索引以響應(yīng) 一個(gè)或多個(gè)搜 索請(qǐng)求時(shí),維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參 考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈接相關(guān)聯(lián) 的錨文本;接收用于處理的文檔;在所述錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條 目,所述要處理的文檔#:標(biāo)識(shí)為目標(biāo)文檔;從所述標(biāo)識(shí)的條目中的每個(gè)條目檢索錨文本;以及 將所述檢索的錨文本存儲(chǔ)到所述文檔的所述搜索索引的條目中。
26. —種計(jì)算機(jī)程序產(chǎn)品,包括含有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可 用介質(zhì),其中所述計(jì)算機(jī)可讀程序在計(jì)算機(jī)上執(zhí)行時(shí)使得所述計(jì)算 機(jī)維護(hù)錨點(diǎn)信息庫(kù),其中所述錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目標(biāo)文檔和與從所述參考文檔到所述目標(biāo)文檔的鏈接相關(guān)聯(lián)的錨文本;維護(hù)重建議程表,其中所述重建議程表中的每個(gè)條目標(biāo)識(shí)一 個(gè)目標(biāo)文檔;以及對(duì)于在所述重建議程表中的每個(gè)條目中標(biāo)識(shí)的每個(gè)目標(biāo)文檔,異 步地,使用所述錨點(diǎn)信息庫(kù)找到所述目標(biāo)文檔的錨文本;以及 更新所述目標(biāo)文檔的搜索索引的條目中的錨文本,其中所 述目標(biāo)文檔的錨文本增量式地更新。
全文摘要
本發(fā)明提供了用于建立搜索索引的技術(shù)。當(dāng)建立搜索索引并使用搜索索引以響應(yīng)一個(gè)或多個(gè)搜索請(qǐng)求時(shí),維護(hù)錨點(diǎn)信息庫(kù),其中錨點(diǎn)信息庫(kù)的每個(gè)條目標(biāo)識(shí)參考文檔、目標(biāo)文檔和與從參考文檔到目標(biāo)文檔的鏈接相關(guān)聯(lián)的錨文本;接收用于處理的文檔;在錨點(diǎn)信息庫(kù)中定位一個(gè)或多個(gè)如下條目,對(duì)于該條目,要處理的文檔被標(biāo)識(shí)為目標(biāo)文檔;從所標(biāo)識(shí)的條目中的每個(gè)條目檢索錨文本;以及將檢索的錨文本存儲(chǔ)到文檔的搜索索引的條目中。
文檔編號(hào)G06F17/30GK101211365SQ20071019275
公開日2008年7月2日 申請(qǐng)日期2007年11月16日 優(yōu)先權(quán)日2006年12月28日
發(fā)明者A·諾伊曼, F·S·格倫南, R·倫珀利 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司