專利名稱:文件系統(tǒng)中搜索排序的方法及相關(guān)搜索引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及對特定信息項(xiàng)的搜索排序,特別地,涉及在文件系統(tǒng)中搜索排序的方法及相關(guān)搜索引擎和計算機(jī)程序產(chǎn)品。
背景技術(shù):
隨著計算機(jī)技術(shù)的不斷發(fā)展,人們越來越依靠于通過計算機(jī)系統(tǒng)(包括計算機(jī)網(wǎng)絡(luò))來存儲大量的信息。當(dāng)今所廣泛應(yīng)用的搜索引擎旨在協(xié)助用戶在大量信息中進(jìn)行檢索,以便方便、快捷地獲得有用信息。在信息檢索領(lǐng)域,搜索引擎獲得了很大的成功,開發(fā)并采用了大量有益的技術(shù)。其中,各種搜索引擎的技術(shù)改進(jìn)和優(yōu)化,都直接反應(yīng)到對搜索結(jié)果的排序上。
一種重要搜索排序技術(shù)就是利用網(wǎng)頁之間的超級鏈接對網(wǎng)頁進(jìn)行排序。例如,Google公司的創(chuàng)始人Sergey Brin和Lawrence Page在1998年提出的PageRank算法,以及同年J.Kleinberg提出的HITS算法等。PageRank的基本原理就是利用網(wǎng)頁之間的鏈接關(guān)系來計算網(wǎng)頁的重要性,即網(wǎng)頁的權(quán)威性分值。PageRank算法遵循兩個基本前提一個網(wǎng)頁被多次引用,則它可能是很重要的;一個網(wǎng)頁雖然沒有被多次引用,但是被重要的網(wǎng)頁引用,則它也可能是很重要的;Google搜索引擎通過PageRank算法計算出網(wǎng)頁的PageRank值,從而決定網(wǎng)頁在檢索結(jié)果集中的出現(xiàn)位置,PageRank值越高的網(wǎng)頁,在結(jié)果中出現(xiàn)的位置越靠前。通過應(yīng)用PageRank算法,改進(jìn)了傳統(tǒng)的檢索排序方法,提高了查詢結(jié)果的準(zhǔn)確度,大大縮短了用戶找到其實(shí)際期望網(wǎng)頁所用的平均時間。
但是,對于文件系統(tǒng)而言,基于鏈接分析的搜索排序算法并不適用。這主要是因?yàn)?,在文件系統(tǒng)中,文件與文件之間并不存在類似于網(wǎng)絡(luò)鏈接這樣的關(guān)聯(lián)。而且,雖然文件系統(tǒng)的數(shù)據(jù)集合不像網(wǎng)絡(luò)的數(shù)據(jù)集合那樣龐大,但是其中的數(shù)據(jù)類型要比網(wǎng)絡(luò)中的數(shù)據(jù)類型更加豐富。
目前,對文件系統(tǒng)進(jìn)行檢索排序主要是利用基于關(guān)鍵詞的檢索方法。傳統(tǒng)的基于關(guān)鍵詞的檢索方法的基本原理是,搜索引擎首先對文檔內(nèi)容進(jìn)行分析,提取文檔中出現(xiàn)的關(guān)鍵詞,并統(tǒng)計關(guān)鍵詞在文檔中出現(xiàn)的頻率、位置以及整個文檔集合中包含該關(guān)鍵詞的文檔的數(shù)目等,將這些信息建立索引。當(dāng)用戶輸入查詢式后,搜索引擎首先分析查詢請求,對每個查詢詞在索引中分別找到包含該關(guān)鍵詞的文檔,然后對每篇文檔計算與查詢式的相關(guān)程度,最后,將相關(guān)文檔按照相關(guān)程度大小進(jìn)行排序,返回給用戶。這種方法的難度在于,大多數(shù)情況下,用戶的查詢要求無法用非常簡單的關(guān)鍵詞進(jìn)行準(zhǔn)確的描述,而且,由于自然語言理解技術(shù)和的相關(guān)程度計算方法的限制,查詢結(jié)果的準(zhǔn)確率比較低。
除了傳統(tǒng)的基于關(guān)鍵詞的檢索方法以外,在文件系統(tǒng)的檢索排序中,還可以應(yīng)用檢索日志分析法對檢索結(jié)果進(jìn)一步改進(jìn)。檢索日志分析法能夠根據(jù)用戶對搜索結(jié)果的反饋和操作,包括輸入的查詢詞以及點(diǎn)擊的歷史,進(jìn)一步分析用戶的搜索興趣,跟蹤用戶在搜索中的特征,用來改善檢索效果。
但是,傳統(tǒng)的關(guān)鍵詞檢索和檢索日志分析法,都沒有關(guān)注到文件系統(tǒng)的樹形組織形式對于搜索排序的影響,未能在排序中體現(xiàn)文件之間的潛在聯(lián)系。
由此可見,現(xiàn)有技術(shù)沒有向用戶提供適合文件系統(tǒng)結(jié)構(gòu)特點(diǎn)的并且進(jìn)一步能夠響應(yīng)于用戶的交互而進(jìn)行動態(tài)適應(yīng)的搜索排序方案。
發(fā)明內(nèi)容
因此,為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種搜索排序方法以及相關(guān)搜索引擎和計算機(jī)程序產(chǎn)品,特別地適合于基于文件系統(tǒng)結(jié)構(gòu)并且利用用戶的與搜索引擎系統(tǒng)的交互對文件系統(tǒng)進(jìn)行搜索的方法。
根據(jù)本發(fā)明的一方面,提供一種適用于文件系統(tǒng)的搜索排序方法,包括接收查詢;至少部分地根據(jù)當(dāng)前的文件系統(tǒng)能量樹中各節(jié)點(diǎn)的能量值計算各個文件項(xiàng)對于查詢的相關(guān)度,并基于相關(guān)度輸出搜索結(jié)果列表;響應(yīng)于用戶對文件系統(tǒng)的操作,對文件系統(tǒng)能量樹進(jìn)行更新,其中,文件系統(tǒng)能量樹具有與文件系統(tǒng)相應(yīng)的樹形結(jié)構(gòu),其各個節(jié)點(diǎn)對應(yīng)于文件系統(tǒng)中的各個文件項(xiàng)。
根據(jù)本發(fā)明的另一方面,提供一種文件系統(tǒng)搜索引擎,包括文件搜索模塊和文件索引以及搜索結(jié)果排序模塊,該文件系統(tǒng)搜索引擎用于根據(jù)接收的查詢進(jìn)行文件項(xiàng)搜索并輸出搜索結(jié)果列表,該文件系統(tǒng)搜索引擎還包括文件系統(tǒng)能量樹索引,用于記錄具有與文件系統(tǒng)相應(yīng)的樹形結(jié)構(gòu)的文件系統(tǒng)能量樹以及其各個節(jié)點(diǎn)的能量值,各個節(jié)點(diǎn)對應(yīng)于文件系統(tǒng)中的各個文件項(xiàng);能量樹更新模塊,用于響應(yīng)于用戶對文件系統(tǒng)的操作,對文件系統(tǒng)能量樹索引中記錄的文件系統(tǒng)能量樹進(jìn)行更新,其中搜索結(jié)果排序模塊用于至少部分地根據(jù)當(dāng)前文件系統(tǒng)能量樹索引中記錄的各節(jié)點(diǎn)的能量值計算各個文件項(xiàng)對于查詢的相關(guān)度,并且使得搜索結(jié)果列表中的文件項(xiàng)按照相關(guān)度進(jìn)行排列。
根據(jù)本發(fā)明的另一方面,還提供一種包含用于執(zhí)行根據(jù)本發(fā)明的方法的計算機(jī)程序代碼的計算機(jī)程序產(chǎn)品。
利用本發(fā)明,用戶在對文件系統(tǒng)進(jìn)行搜索時,其感興趣的文件、文件夾通常排在搜索結(jié)果列表中較靠前的位置。而且,隨著用戶對文件點(diǎn)擊的增加,該能量樹的能量分布不斷更新,使得搜索排序能夠響應(yīng)于用戶交互持續(xù)跟蹤用戶的興趣或偏好,及時調(diào)整搜索結(jié)果列表來動態(tài)地適應(yīng)用戶興趣或偏好的變化。
結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其它特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
圖1表示了根據(jù)本發(fā)明一個實(shí)施例的搜索排序處理流程;圖2示意性地表示了在文件系統(tǒng)搜索引擎初始化時所創(chuàng)建的文件系統(tǒng)能量樹的一個示例;圖3A、3B、3C示意性地表示圖2所示的文件系統(tǒng)能量樹在用戶點(diǎn)擊文件之后的能量值的更新;圖4表示了根據(jù)本發(fā)明一個實(shí)施例的文件系統(tǒng)能量樹響應(yīng)用戶點(diǎn)擊的更新流程;圖5示意性地表示圖3C所示文件系統(tǒng)能量樹在用戶創(chuàng)建新文件時的能量值更新;圖6表示了根據(jù)本發(fā)明一個實(shí)施例的文件系統(tǒng)搜索引擎示意框圖;以及圖7示意性地表示了其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計算機(jī)系統(tǒng)。
具體實(shí)施例方式
以下參照附圖,對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。
圖1表示了根據(jù)本發(fā)明一個實(shí)施例的搜索排序處理流程。
如圖1所示,在步驟S100中,開始該處理流程。
在步驟S102中,接收用戶輸入的查詢q。
在步驟S104中,根據(jù)查詢q對相關(guān)文件項(xiàng)進(jìn)行搜索。例如,當(dāng)采用的文件系統(tǒng)搜索引擎為基于關(guān)鍵詞的搜索引擎時,文件系統(tǒng)搜索引擎根據(jù)查詢q利用文件系統(tǒng)索引中的信息,可以計算每個文件項(xiàng)d對于該查詢q的重要程度的分值s(q,d)。通常,該分值s(q,d)在常規(guī)的文件系統(tǒng)搜索引擎中,會作為搜索結(jié)果排序的依據(jù)。
結(jié)合下文中的描述,本領(lǐng)域的技術(shù)人員可以理解,雖然在這里給出了基于關(guān)鍵詞進(jìn)行搜索的示例,但是本發(fā)明的技術(shù)方案并不限制具體采用何種現(xiàn)有技術(shù)來實(shí)現(xiàn)該搜索步驟。而且,根據(jù)查詢q對文件項(xiàng)進(jìn)行搜索的過程可以以任何已知的算法、過程、方式來實(shí)現(xiàn),而該實(shí)現(xiàn)本身不屬于本發(fā)明的范圍。
在步驟S106中,根據(jù)當(dāng)前的文件能量值計算文件的相關(guān)度,并基于該相關(guān)度輸出搜索結(jié)果列表。
根據(jù)本發(fā)明,在啟動任何具體搜索排序處理之前(例如文件系統(tǒng)搜索引擎初始化階段),文件系統(tǒng)搜索引擎首先依據(jù)文件系統(tǒng)的結(jié)構(gòu)(文件系統(tǒng)可以對應(yīng)于一個樹形結(jié)構(gòu),其中目錄作為非葉子節(jié)點(diǎn),而文件則作為葉子節(jié)點(diǎn)),創(chuàng)建具有相同結(jié)構(gòu)的文件系統(tǒng)能量樹,其每個節(jié)點(diǎn)的值代表對應(yīng)文件或者文件夾的能量值,其中能量值是反映該用戶對于該文件或文件夾的興趣或偏好的參數(shù)。在這個初始化過程中,可以使得所有節(jié)點(diǎn)的能量值相等。
如在步驟S104中所描述的,文件系統(tǒng)搜索引擎會根據(jù)接收到的查詢q為每個文件d提供一個用于排序的分值s(q,d)。根據(jù)當(dāng)前文件系統(tǒng)能量樹中提供的信息以及該用于排序的分值,為每個文件計算相關(guān)度s’(q,d)以用于最終的搜索排序。例如,對于文件d,給定查詢q可以用如下公式定義相關(guān)度s’(q,d)與分值s(q,d)和能量值E(d)之間的關(guān)系s’(q,d)=βs(q,d)+(1-β)E(d)其中,β為一個取值在0到1之間的參數(shù),用來平衡分值和能量值在相關(guān)度中所占的比重。
由此,在該步驟中根據(jù)相關(guān)度輸出的搜索結(jié)果列表至少部分地反映了用戶在操作文件系統(tǒng)時的興趣或偏好。
在步驟S108中,響應(yīng)于用戶對文件系統(tǒng)的操作(例如,查詢、打開文件或文件夾、添加文件或文件夾、刪除文件或文件夾等),對文件系統(tǒng)能量樹進(jìn)行更新,使得其能夠動態(tài)地反映當(dāng)前文件系統(tǒng)的結(jié)構(gòu)以及用戶對某類文件或文件夾的興趣或偏好。
在步驟S110中,判斷搜索是否結(jié)束。
如果判斷結(jié)果為“是”,則該處理在步驟S112中結(jié)束。
如果判斷結(jié)果為“否”,則返回步驟S102接收新的查詢q,并繼續(xù)執(zhí)行以后的步驟。
能量值是動態(tài)反映用戶操作文件系統(tǒng)時的興趣或偏好的參數(shù)。將文件能量值引入到排序方案中,能夠使得搜索結(jié)果至少部分地依據(jù)用戶的興趣或偏好進(jìn)行排序,用戶由此會更加方便有效地找到其所需的文件或文件夾。
在下文中將詳細(xì)介紹如何對文件系統(tǒng)能量樹進(jìn)行動態(tài)更新,以便其能夠及時并且有效地反映用戶的興趣或偏好。
為了便于下文的描述,首先給出一些術(shù)語的基本定義葉子節(jié)點(diǎn)d如上所述,在文件系統(tǒng)中,葉子節(jié)點(diǎn)是指任何格式的文件,例如html、doc、pdf等;非葉子節(jié)點(diǎn)f如上所述,在文件系統(tǒng)中,非葉子節(jié)點(diǎn)是指文件夾(這里以及以下的描述中,為了簡便起見,認(rèn)為文件夾均包含有文件。實(shí)際實(shí)現(xiàn)中,可將空文件夾等效處理為葉子節(jié)點(diǎn));節(jié)點(diǎn)n包括所有葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn);傳遞深度depth表示在響應(yīng)于用戶交互而進(jìn)行的處理期間,能量傳遞的范圍,例如可以表示為在該范圍之內(nèi)能量傳遞所經(jīng)過的最大路徑數(shù)。
圖2示意性地表示了在文件系統(tǒng)搜索引擎初始化時所創(chuàng)建的文件系統(tǒng)能量樹的一個示例。
如圖2所示,能量樹的根節(jié)點(diǎn)A為非葉子節(jié)點(diǎn),可以對應(yīng)于文件系統(tǒng)的根目錄A。節(jié)點(diǎn)A的孩子節(jié)點(diǎn)包括節(jié)點(diǎn)B、C、D,其中葉子節(jié)點(diǎn)C對應(yīng)于根目錄A下的文件C,而非葉子節(jié)點(diǎn)B、D分別對應(yīng)于根目錄A下的兩個文件夾B、D。類似地,與節(jié)點(diǎn)B連接的包括孩子節(jié)點(diǎn)E、F、G,其中葉子節(jié)點(diǎn)E、G對應(yīng)于文件夾B中的兩個文件E、G,而非葉子節(jié)點(diǎn)F對應(yīng)于文件夾B中的文件夾F。與節(jié)點(diǎn)F連接的包括葉子節(jié)點(diǎn)J、K,對應(yīng)于文件夾F中的兩個文件J、K。與節(jié)點(diǎn)D連接的包括葉子節(jié)點(diǎn)H、I,對應(yīng)于文件夾D中的兩個文件H、I。
在初始化圖2中的能量樹時,可以將所有節(jié)點(diǎn)的能量值設(shè)置成相同的值。
圖3A、3B、3C示意性地表示圖2所示的文件系統(tǒng)能量樹在用戶點(diǎn)擊文件之后的能量值的更新。
當(dāng)一個文件例如文件K被用戶點(diǎn)擊,則可以認(rèn)為相對于其它文件而言,用戶對于文件K更加感興趣。因此,如圖3A所示,響應(yīng)于這次點(diǎn)擊,增加對應(yīng)的節(jié)點(diǎn)K的能量值。此時,節(jié)點(diǎn)K成為源節(jié)點(diǎn)。
在搜索和排序的環(huán)境下,當(dāng)用戶對文件K感興趣,并不意味著他只對這一個文件感興趣,而是表示他可能對與文件K密切相關(guān)的一些文件和文件夾都感興趣。因?yàn)?,用戶通常?xí)慣于將相關(guān)或者同類文件放置在相同的目錄或文件夾中,所以與文件K密切相關(guān)的文件可能包括文件夾F(在樹形結(jié)構(gòu)中的父節(jié)點(diǎn))以及與其同在文件夾F下的文件J(在樹形結(jié)構(gòu)中的兄弟節(jié)點(diǎn))。因此,所有增加的能量不能靜態(tài)地只存在于節(jié)點(diǎn)K。
根據(jù)本發(fā)明的一個實(shí)施例,能量將按照文件系統(tǒng)能量樹的結(jié)構(gòu),通過連接節(jié)點(diǎn)K的鏈接進(jìn)行傳遞。如圖3B所示,節(jié)點(diǎn)K的能量部分地傳遞到節(jié)點(diǎn)F。接著,如圖3所示,節(jié)點(diǎn)F再將其自身的能量通過連接到它的鏈接部分地傳遞到其孩子節(jié)點(diǎn)J以及其父節(jié)點(diǎn)B。依此類推,在文件系統(tǒng)能量樹中傳遞能量。
為了提高這種能量傳輸算法的效率,在本發(fā)明的一個實(shí)現(xiàn)中可以規(guī)定當(dāng)向一個節(jié)點(diǎn)增加能量時的能量傳遞深度depth,也就是能量傳遞所經(jīng)過的最大路徑數(shù)。在圖3C所示的示例中,規(guī)定了傳遞深度depth=2。能量傳遞到節(jié)點(diǎn)B,它是作為源節(jié)點(diǎn)的節(jié)點(diǎn)K的祖父節(jié)點(diǎn),與節(jié)點(diǎn)K的之間相距的路徑,也即距離為2。由于規(guī)定了傳遞深度depth=2,節(jié)點(diǎn)B不再將能量傳遞到它的父節(jié)點(diǎn)A和其孩子節(jié)點(diǎn)E和G。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,傳遞深度是可以依據(jù)特定的文件系統(tǒng)以及搜索排序需求進(jìn)行選擇,因此并不對本發(fā)明構(gòu)成限制。而且,還可以將能量傳遞深度depth與其它限制條件相結(jié)合來限定能量的傳遞。例如,可以規(guī)定能量傳遞深度depth=3且能量最遠(yuǎn)只傳遞到源節(jié)點(diǎn)的祖父節(jié)點(diǎn)位置。在這樣的復(fù)合條件下,則節(jié)點(diǎn)B可以把能量傳遞給其孩子節(jié)點(diǎn)E和G,而不再傳遞給其父節(jié)點(diǎn)A。因此,可以非常靈活地進(jìn)行能量傳遞限制條件的設(shè)定。
在根據(jù)本發(fā)明的搜索排序方法中,通過將每個節(jié)點(diǎn)的能量值至少部分地作為對應(yīng)于該節(jié)點(diǎn)的文件的相關(guān)度,能夠獲得更好的排序效果。例如,在圖3C中,節(jié)點(diǎn)K具有比節(jié)點(diǎn)B更高的能量,當(dāng)它們對于查詢q得到分值相同時,節(jié)點(diǎn)K的相關(guān)度將會高于節(jié)點(diǎn)B的相關(guān)度。在搜索結(jié)果列表中文件K將會獲得更好的排序位置,例如,位于列表更靠前的位置等。這樣,用戶感興趣的文件、文件夾通常排在搜索結(jié)果列表中較靠前的位置,給用戶的搜索帶來了方便。而且,隨著用戶對文件點(diǎn)擊的增加,將會給受點(diǎn)擊的源節(jié)點(diǎn)以及其附近的節(jié)點(diǎn)增加能量,由此不斷更新該能量樹的能量分布。因此,基于文件系統(tǒng)能量樹,搜索排序能夠持續(xù)跟蹤用戶的興趣或偏好,及時調(diào)整搜索結(jié)果列表來動態(tài)地適應(yīng)用戶興趣或偏好的變化。
圖4表示了根據(jù)本發(fā)明一個實(shí)施例的文件系統(tǒng)能量樹響應(yīng)用戶點(diǎn)擊的更新流程。
如圖4所示,在步驟S400中該處理流程開始。
在步驟S402中,用戶點(diǎn)擊文件d。
在步驟S404中,將文件d對應(yīng)的節(jié)點(diǎn)d放入一個預(yù)先經(jīng)過初始化的集合C中,其中該集合C用于包含當(dāng)前能量值需要更新的節(jié)點(diǎn)。
在步驟S406中,將當(dāng)前深度初始化為0。
在步驟S408中,為集合C中每個節(jié)點(diǎn)n(n∈C)計算新能量值,每個節(jié)點(diǎn)n的新能量值E’(n)滿足E′(n)=E(n)+pdist(n,d)其中,E(n)為節(jié)點(diǎn)n的原有的能量值;p為能量傳遞率,取值在0到1之間;dist(n,d)表示在文件系統(tǒng)能量樹的結(jié)構(gòu)中,從節(jié)點(diǎn)n沿樹的路徑到節(jié)點(diǎn)d之間的距離。例如,由用戶點(diǎn)擊文件所增加的能量值為1,由于該節(jié)點(diǎn)的父節(jié)點(diǎn)到該節(jié)點(diǎn)的距離為1,所以該節(jié)點(diǎn)的父節(jié)點(diǎn)的能量將增加p1,而其祖父節(jié)點(diǎn)和其兄弟節(jié)點(diǎn)到該節(jié)點(diǎn)的距離為2,所以其祖父節(jié)點(diǎn)和其兄弟節(jié)點(diǎn)的能量值將分別增加p2。
在步驟S410中,將當(dāng)前深度累加1。
在步驟S412中,判斷當(dāng)前深度是否小于或等于傳遞深度depth。
如果在步驟S412中判斷結(jié)果為“是”,則處理進(jìn)入步驟S414。
在步驟S414中,獲取當(dāng)前集合C中所有元素節(jié)點(diǎn)的相鄰節(jié)點(diǎn),并在將C集合中的當(dāng)前節(jié)點(diǎn)清空后,將所有新獲取的節(jié)點(diǎn)插入到集合C中。其中一個節(jié)點(diǎn)的相鄰節(jié)點(diǎn)是指,與該節(jié)點(diǎn)直接相連的節(jié)點(diǎn),即包括其父節(jié)點(diǎn),以及其孩子節(jié)點(diǎn)(如果存在的話)。
在步驟S414之后,處理返回步驟S408繼續(xù)執(zhí)行。
如果在步驟S412中判斷結(jié)果為“否”,則處理在步驟S416中結(jié)束。
需要注意的是,本領(lǐng)域技術(shù)人員可以為能量傳遞率p和傳遞深度depth選擇不同數(shù)值,甚至還可以設(shè)計其它的能量傳遞公式,以適應(yīng)具體文件系統(tǒng)以及特定搜索需求的特點(diǎn)。例如,可以不限定傳遞深度depth,而是僅僅通過能量傳遞值pdist(n,d)的大小來限制能量傳遞的距離。也就是說,預(yù)先設(shè)定一個能量傳遞閾值,對于各個相關(guān)節(jié)點(diǎn)來說,如果其能量傳遞值pdist(n,d)大于所述閾值,則繼續(xù)向其相鄰節(jié)點(diǎn)傳遞能量,如果其能量傳遞值pdist(n,d)等于或小于所述閾值,則停止能量傳遞。
圖5示意性地表示圖3C所示文件系統(tǒng)能量樹在用戶創(chuàng)建新文件時的能量值更新。用戶在文件夾F下創(chuàng)建了新的文件M,其對應(yīng)于節(jié)點(diǎn)F的孩子節(jié)點(diǎn)M??梢灾苯訛楣?jié)點(diǎn)M分配相應(yīng)的能量值。例如,可以為節(jié)點(diǎn)M分配與其父節(jié)點(diǎn)F相同的能量值。
對于用戶刪除文件或文件夾的情況,可以簡單地把對應(yīng)節(jié)點(diǎn)從文件系統(tǒng)能量樹中刪除,而不調(diào)整其它節(jié)點(diǎn)的能量值。
類似地,對于用戶移動文件或文件夾的操作,可以將其分解為一個創(chuàng)建過程以及一個刪除過程。
本領(lǐng)域的技術(shù)人員可以理解,文件系統(tǒng)能量樹響應(yīng)于具體用戶操作的能量值更新規(guī)則,可以根據(jù)需要進(jìn)行設(shè)計,以便優(yōu)化搜索排序的性能。因此,其具體實(shí)現(xiàn)方式不對本發(fā)明構(gòu)成限制。
圖6表示了根據(jù)本發(fā)明一個實(shí)施例的文件系統(tǒng)搜索引擎示意框圖。其中,參考標(biāo)號600表示文件系統(tǒng)搜索引擎;參考標(biāo)號614表示文件搜索模塊;參考標(biāo)號610表示支持該文件搜索模塊614的文件索引;參考標(biāo)號602表示文件系統(tǒng)搜索引擎中的搜索結(jié)果排序模塊;參考標(biāo)號604表示用于對文件點(diǎn)擊打開操作進(jìn)行記錄的歷史記錄模塊;參考標(biāo)號606表示用于對文件系統(tǒng)能量樹進(jìn)行更新的能量樹更新模塊;參考標(biāo)號608表示用于對文件系統(tǒng)中創(chuàng)建、刪除、移動文件等變化進(jìn)行監(jiān)測的文件系統(tǒng)監(jiān)控模塊;參考標(biāo)號612表示記錄有文件系統(tǒng)能量樹結(jié)構(gòu)以及各個節(jié)點(diǎn)能量值的文件系統(tǒng)能量樹索引。
如圖6所示,文件系統(tǒng)能量樹索引612中記錄有為文件系統(tǒng)所創(chuàng)建的能量樹結(jié)構(gòu)以及各個節(jié)點(diǎn)的能量值。在收到查詢q時,文件系統(tǒng)搜索引擎600的文件搜索模塊614依據(jù)文件索引610對相關(guān)文件進(jìn)行搜索,并為每個文件提供用于排序的分值。搜索結(jié)果排序模塊602根據(jù)文件搜索模塊614提供的分值以及文件系統(tǒng)能量樹索引612提供的各個節(jié)點(diǎn)的能量值,為每個文件計算相關(guān)度以用于最終的搜索結(jié)果排序。歷史記錄模塊604記錄用戶對于文件的點(diǎn)擊并將該信息提供給能量樹更新模塊606。能量樹更新模塊606根據(jù)歷史記錄模塊604提供的信息,例如按照上文中所述的能量傳遞方法對能量樹中需要更新的節(jié)點(diǎn)的能量值進(jìn)行計算,并將結(jié)果提供給文件系統(tǒng)能量樹索引612,對文件系統(tǒng)能量樹的信息進(jìn)行更新。文件系統(tǒng)監(jiān)控模塊608監(jiān)控用戶對于文件系統(tǒng)所進(jìn)行創(chuàng)建、刪除以及移動文件或文件夾的操作,并將該信息提供給能量樹更新模塊606。類似地,能量樹更新模塊606例如根據(jù)如上文所述的預(yù)定規(guī)則,更新文件系統(tǒng)能量樹索引612中記錄的信息,包括能量樹的樹形結(jié)構(gòu)以及相應(yīng)節(jié)點(diǎn)能量值。
需要指出的是,適用于根據(jù)本發(fā)明的文件系統(tǒng)搜索引擎600的文件搜索模塊614以及其對應(yīng)的文件索引610可以是任何類型的,例如文件搜索模塊614可以根據(jù)關(guān)鍵詞、標(biāo)題、日期等對文件的重要程度進(jìn)行打分,文件索引610可以是以關(guān)鍵詞為索引的一個集中式索引結(jié)構(gòu),也可以是多個分散的索引結(jié)構(gòu)。也就是說,文件索引具體如何編制、文件搜索模塊具體如何進(jìn)行文件搜索,對本發(fā)明不構(gòu)成限制。因此,根據(jù)本發(fā)明文件系統(tǒng)搜索引擎也可以將文件系統(tǒng)中的文件夾作為一種文件項(xiàng),和文件一起排列搜索結(jié)果列表中進(jìn)行輸出。本領(lǐng)域技術(shù)人員可以理解,搜索結(jié)果排序模塊為每個文件夾執(zhí)行類似于對文件的處理過程,即為每個文件夾計算一個與其當(dāng)前能量值有關(guān)的相關(guān)度,然后進(jìn)行搜索結(jié)果排序。
圖6僅示出了能夠?qū)崿F(xiàn)本發(fā)明的一種文件系統(tǒng)搜索引擎的示例。本領(lǐng)域技術(shù)人員可以理解,在模塊的具體實(shí)現(xiàn)上,尤其是通過軟件實(shí)現(xiàn)各個模塊功能時,可以存在多種可選方案。例如,可以將所示的歷史記錄模塊604以及文件系統(tǒng)監(jiān)控模塊608合并到同一模塊中,甚至還可以將它們直接合并到能量樹更新模塊606中。
圖7示意性地表示了其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計算機(jī)系統(tǒng)。圖7中所示的計算機(jī)系統(tǒng)包括CPU(中央處理單元)701、RAM(隨機(jī)存取存儲器)702、ROM(只讀存儲器)703、系統(tǒng)總線704,HD(硬盤)控制器705、鍵盤控制器706、串行接口控制器707、并行接口控制器708、顯示器控制器709、硬盤710、鍵盤711、串行外部設(shè)備712、并行外部設(shè)備713和顯示器714。在這些部件中,與系統(tǒng)總線704相連的有CPU 701、RAM 702、ROM 703、HD控制器705、鍵盤控制器706,串行接口控制器707,并行接口控制器708和顯示器控制器709。硬盤710與HD控制器705相連,鍵盤711與鍵盤控制器706相連,串行外部設(shè)備712與串行接口控制器707相連,并行外部設(shè)備713與并行接口控制器708相連,以及顯示器714與顯示器控制器709相連。
圖7中每個部件的功能在本技術(shù)領(lǐng)域內(nèi)都是眾所周知的,并且圖7所示的結(jié)構(gòu)也是常規(guī)的。這種結(jié)構(gòu)不僅用于個人計算機(jī),而且用于手持設(shè)備,如Palm PC、PDA(個人數(shù)據(jù)助理)、移動電話等等。在不同的應(yīng)用中,圖7中所示的某些部件可以被省略。圖7中所示的整個系統(tǒng)由通常作為軟件存儲在硬盤710中、或者存儲在EPROM或者其它非易失性存儲器中的計算機(jī)可讀指令控制。軟件也可從網(wǎng)絡(luò)(圖中未示出)下載。或者存儲在硬盤710中,或者從網(wǎng)絡(luò)下載的軟件可被加載到RAM 702中,并由CPU 701執(zhí)行,以便完成由軟件確定的功能。
盡管圖7中描述的計算機(jī)系統(tǒng)能夠支持根據(jù)本發(fā)明的文件系統(tǒng)搜索排序,但是該計算機(jī)系統(tǒng)只是計算機(jī)系統(tǒng)的一個例子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計算機(jī)系統(tǒng)設(shè)計也能實(shí)現(xiàn)本發(fā)明的實(shí)施例。
本發(fā)明還可以實(shí)現(xiàn)為一種例如由圖7所示計算機(jī)系統(tǒng)所使用的計算機(jī)程序產(chǎn)品,其包含有用于執(zhí)行根據(jù)本發(fā)明的適用于文件系統(tǒng)的搜索排序方法的代碼。在使用之前,可以把代碼存儲在其它計算機(jī)系統(tǒng)的存儲器中,例如,存儲在硬盤或諸如光盤或軟盤的可移動的存儲器中,或者經(jīng)由因特網(wǎng)或其它計算機(jī)網(wǎng)絡(luò)進(jìn)行下載。
雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變形或修改。
權(quán)利要求
1.一種適用于文件系統(tǒng)的搜索排序方法,包括接收查詢;至少部分地根據(jù)當(dāng)前的文件系統(tǒng)能量樹中各節(jié)點(diǎn)的能量值計算各個文件項(xiàng)對于所述查詢的相關(guān)度,并基于所述相關(guān)度輸出搜索結(jié)果列表;以及響應(yīng)于用戶對所述文件系統(tǒng)的操作,對所述文件系統(tǒng)能量樹進(jìn)行更新,其中,所述文件系統(tǒng)能量樹具有與所述文件系統(tǒng)相應(yīng)的樹形結(jié)構(gòu),其所述各個節(jié)點(diǎn)對應(yīng)于所述文件系統(tǒng)中的各個文件項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于用戶對文件項(xiàng)的點(diǎn)擊,增加所述文件系統(tǒng)能量樹中對應(yīng)于所述文件項(xiàng)的節(jié)點(diǎn)的能量值;至少部分地將所述節(jié)點(diǎn)增加的能量值沿所述文件系統(tǒng)能量樹的路徑傳遞到其它相關(guān)的節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求2所述的方法,其中至少部分地將所述節(jié)點(diǎn)增加的能量值傳遞到位于預(yù)定傳遞深度之內(nèi)的節(jié)點(diǎn),并且滿足E′(n)=E(n)+pdist(n,d)其中,d表示與所述被點(diǎn)擊文件項(xiàng)對應(yīng)的節(jié)點(diǎn);n表示任一位于所述預(yù)定傳遞深度之內(nèi)的節(jié)點(diǎn);E(n)為節(jié)點(diǎn)n的原有的能量值;E’(n)為節(jié)點(diǎn)n的更新后的能量值;p為取值在0到1之間的能量傳遞率;dist(n,d)表示在所述文件系統(tǒng)能量樹的結(jié)構(gòu)中,從節(jié)點(diǎn)n沿樹的路徑到節(jié)點(diǎn)d之間的距離,其中dist(n,d)小于或等于預(yù)定傳遞深度。
4.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于用戶創(chuàng)建文件項(xiàng)的操作,在所述文件系統(tǒng)能量樹中創(chuàng)建相應(yīng)的節(jié)點(diǎn),并且為所述創(chuàng)建的節(jié)點(diǎn)分配與其父節(jié)點(diǎn)相等的能量值。
5.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于用戶刪除文件項(xiàng)的操作,在所述文件系統(tǒng)能量樹中刪除相應(yīng)的節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求1所述的方法,其中響應(yīng)于用戶將文件項(xiàng)從第一位置移動到第二位置的操作,在所述文件系統(tǒng)能量樹的第一位置處刪除相應(yīng)的節(jié)點(diǎn),并在所述文件系統(tǒng)能量樹的第二位置處創(chuàng)建相應(yīng)的節(jié)點(diǎn),并為其分配與其當(dāng)前父節(jié)點(diǎn)相等的能量值。
7.根據(jù)權(quán)利要求1所述的方法,其中所述文件系統(tǒng)能量樹被初始化為各個節(jié)點(diǎn)具有相等的能量值。
8.根據(jù)權(quán)利要求1-7中之一所述的方法,其中所述文件項(xiàng)包括文件和文件夾。
9.一種文件系統(tǒng)搜索引擎,包括文件搜索模塊和文件索引以及搜索結(jié)果排序模塊,該文件系統(tǒng)搜索引擎用于根據(jù)接收的查詢進(jìn)行文件項(xiàng)搜索并輸出搜索結(jié)果列表,該文件系統(tǒng)搜索引擎還包括文件系統(tǒng)能量樹索引,用于記錄具有與所述文件系統(tǒng)相應(yīng)的樹形結(jié)構(gòu)的文件系統(tǒng)能量樹以及其各個節(jié)點(diǎn)的能量值,所述各個節(jié)點(diǎn)對應(yīng)于所述文件系統(tǒng)中的各個文件項(xiàng);能量樹更新模塊,用于響應(yīng)于用戶對所述文件系統(tǒng)的操作,對所述文件系統(tǒng)能量樹索引中記錄的所述文件系統(tǒng)能量樹進(jìn)行更新,其中所述搜索結(jié)果排序模塊用于至少部分地根據(jù)當(dāng)前所述文件系統(tǒng)能量樹索引中記錄的各節(jié)點(diǎn)的能量值計算各個文件項(xiàng)對于查詢的相關(guān)度,并且使得所述搜索結(jié)果列表中的文件項(xiàng)按照所述相關(guān)度進(jìn)行排列。
10.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,其中所述能量樹更新模塊響應(yīng)于用戶對文件項(xiàng)的點(diǎn)擊,增加所述文件系統(tǒng)能量樹索引記錄的對應(yīng)于所述文件項(xiàng)的節(jié)點(diǎn)的能量值,并且至少部分地將所述節(jié)點(diǎn)增加的能量值沿所述文件系統(tǒng)能量樹的路徑傳遞到其它相關(guān)的節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求10所述的文件系統(tǒng)搜索引擎,其中所述能量樹更新模塊根據(jù)以下表達(dá)式計算所述文件系統(tǒng)能量樹索引中需要更新的節(jié)點(diǎn)的能量值E′(n)=E(n)+pdist(n,d)其中,d表示所述與被點(diǎn)擊文件項(xiàng)對應(yīng)的節(jié)點(diǎn);n表示任一位于預(yù)定傳遞深度之內(nèi)的節(jié)點(diǎn);E(n)為節(jié)點(diǎn)n的原有的能量值;E’(n)為節(jié)點(diǎn)n的更新后的能量值;p為取值在0到1之間的能量傳遞率;dist(n,d)表示在所述文件系統(tǒng)能量樹的結(jié)構(gòu)中,從節(jié)點(diǎn)n沿樹的路徑到節(jié)點(diǎn)d之間的距離,其中dist(n,d)小于或等于預(yù)定傳遞深度。
12.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,其中所述能量樹更新模塊響應(yīng)于用戶創(chuàng)建文件項(xiàng)的操作,在所述文件系統(tǒng)能量樹索引中創(chuàng)建對應(yīng)于所述創(chuàng)建的文件項(xiàng)的節(jié)點(diǎn),并且為所述創(chuàng)建的節(jié)點(diǎn)分配與其父節(jié)點(diǎn)相等的能量值。
13.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,其中所述能量樹更新模塊響應(yīng)于用戶刪除文件項(xiàng)的操作,在所述文件系統(tǒng)能量樹索引中刪除對應(yīng)于所述刪除的節(jié)點(diǎn)。
14.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,其中所述能量樹更新模塊響應(yīng)于用戶將文件項(xiàng)從第一位置移動到第二位置的操作,在所述文件系統(tǒng)能量樹索引記錄的所述文件系統(tǒng)能量樹的第一位置處刪除對應(yīng)于所述移動的文件項(xiàng)的節(jié)點(diǎn),并在所述文件系統(tǒng)能量樹索引記錄的所述文件系統(tǒng)能量樹的第二位置處創(chuàng)建對應(yīng)于所述移動的文件項(xiàng)的節(jié)點(diǎn),并為其分配與其當(dāng)前父節(jié)點(diǎn)相等的能量值。
15.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,包括歷史記錄模塊,用于獲取用戶對文件項(xiàng)的點(diǎn)擊,并將相應(yīng)信息提供給所述能量樹更新模塊。
16.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,包括文件系統(tǒng)監(jiān)控模塊,用于監(jiān)控用戶對文件系統(tǒng)執(zhí)行的創(chuàng)建、刪除以及移動文件項(xiàng)的操作,并將相應(yīng)信息提供給所述能量樹更新模塊。
17.根據(jù)權(quán)利要求9所述的文件系統(tǒng)搜索引擎,其中在所述文件系統(tǒng)搜索引擎初始化時,所述文件系統(tǒng)能量樹索引記錄的各個節(jié)點(diǎn)具有相等的能量值。
18.根據(jù)權(quán)利要求9-17中之一所述的文件系統(tǒng)搜索引擎,其中所述文件項(xiàng)包括文件和文件夾。
19.一種計算機(jī)程序產(chǎn)品,包含用于執(zhí)行根據(jù)權(quán)利要求1至8中任何一個權(quán)利要求所述方法的計算機(jī)程序代碼。
全文摘要
本發(fā)明提供一種適用于文件系統(tǒng)的搜索排序方法,包括接收查詢;至少部分地根據(jù)當(dāng)前的文件系統(tǒng)能量樹中各節(jié)點(diǎn)的能量值計算各個文件項(xiàng)對于查詢的相關(guān)度,并基于相關(guān)度輸出搜索結(jié)果列表;響應(yīng)于用戶對文件系統(tǒng)的操作,對文件系統(tǒng)能量樹進(jìn)行更新,其中,文件系統(tǒng)能量樹具有與文件系統(tǒng)相應(yīng)的樹形結(jié)構(gòu),其各個節(jié)點(diǎn)對應(yīng)于文件系統(tǒng)中的各個文件項(xiàng)。本發(fā)明還提供一種相應(yīng)的文件系統(tǒng)搜索引擎和計算機(jī)程序產(chǎn)品。通過利用本發(fā)明,用戶在對文件系統(tǒng)進(jìn)行搜索時,其感興趣的文件、文件夾通常排在搜索結(jié)果列表中較靠前的位置。而且,隨著用戶對文件點(diǎn)擊的增加,搜索結(jié)果列表能夠動態(tài)地適應(yīng)用戶興趣或偏好的變化。
文檔編號G06F17/30GK101046804SQ200610066298
公開日2007年10月3日 申請日期2006年3月30日 優(yōu)先權(quán)日2006年3月30日
發(fā)明者陳偉柱, 張俐, 蘇中 申請人:國際商業(yè)機(jī)器公司