專利名稱:對搜索結果進行排序的方法及排序裝置的制作方法
技術領域:
本發明涉及數據的排序技術,具體地說,涉及對搜索結果進行排序的 方法和排序裝置以^于層級結構數據的搜索方法及搜索引擎。
背景技術:
在例如公司、學校等大型組織的計算機網絡中,通常設置有目錄服務 器以提供電子的目錄服務,例如用戶信息搜索等。當某個用戶使用客戶端 軟件在目錄服務器中搜索某個人員時,該用戶輸入相應的搜索標準,例如 姓名、郵件地址、電話號碼等。客戶端軟件可以是電子郵件客戶端軟件、
提供目錄服務的網站等,例如IBM公司的Lotus Notes、 Blue Page (藍頁) 等。然后,目錄服務器才艮據該搜索標準進行搜索,并將搜索結果返回用戶。 然而,用戶經常只能提供部分的、不完整的信息作為搜索標準,這會 導致可能出現多個符合搜索標準的記錄。另外,如果搜索目標具有與其它 人員相同的信息,例如相同的姓或名等,也會導致返回多個記錄。 一般地, 如果搜索結果包括多個記錄,則該搜索結果中的多個記錄按照字母順序進 行排序。用戶需要瀏覽該搜索結果以選擇所需要的記錄,而該記錄很可能 排在較后的位置。
類似的情況也出現在用戶使用電子郵件客戶端軟件時。例如,當用戶 使用Lotus Notes企業電子郵件系統發送郵件時,如果用戶僅輸入名字的一 部分或者容易重復的名字,則會出現包含多個符合要求的名字的列表,用 戶需要從該列表中選擇所需要的名字,而該列表中的名字按照字母順序進 行排序。這樣,很可能出現用戶所需要的名字處于列表的較后端的情況, 從而使用戶的操作不方便。尤其是,當用戶需要經常向某個用戶或某組用戶發送許多電子郵件時,每次用戶都需要瀏覽名字列表進行選擇,這種瀏 覽選擇操作會浪費許多時間,造成效率低下。
另外,還經常出現這樣的情況發起搜索請求的用戶想要找到與其在 同一部門或組織中的人員,因此,希望該目標人員排在搜索結果列表的最 前面,然而在現有技術中,搜索結果列表都是按照字母順序進行排序的。
因此,希望有一種技術方案能夠^JC起搜索請求的用戶迅速找到其所 希望的搜索記錄,即,使最相關的搜索記錄位于搜索結果列表的前端。
文獻"RFC 2891-LDAP Control Extension for Server Side Sorting of Search Results"提供了在服務器側對搜索結果的排序控制,其使用一個或 多個排序鍵指定排序標準,然而,該排序控制僅限于現有的排序鍵,并且 沒有利用發起搜索請求的用戶與搜索記錄之間的關系。
發明內容
本發明正是基于上述技術問題而提出的,其目的在于提供一種對搜索 結果進行排序的方法和排序裝置,其能夠利用層級結構數據中各個數據單 元之間的關系,對搜索結果進行排序,從而方便搜索請求者迅速找到最關 心的數據單元,提高了效率。此外,本發明還提供了一種基于層級結構數 據的搜索方法及搜索引擎。
根據本發明的第一個方面,提供一種對搜索結果進行排序的方法,其 中上述搜索結果包括來自層級結構數據的多個候選數據單元,并且所述層 級結構數據還包括與搜索請求者對應的數據單元,所述方法包括根據所 述層級結構數據,計算所述搜索請求者的數據單元與所述多個候選數據單 元的每一個之間的相關距離,所^目關距離表示所述層級結構數據中的數 據單元之間的相關性;以及按照所勤目關距離,對所述多個候選數據單元 進行排序。
根據本發明的第二個方面,提供一種用于對搜索結果進行排序的排序 裝置,其中上述搜索結果包括來自層級結構數據的多個候選數據單元,并 且所述層級結構數據還包括與搜索請求者對應的數據單元,所述排序裝置
7包括相關距離計算單元,用于根據所述層級結構數據,計算所述搜索請 求者的數據單元與所述多個候選數據單元的每一個之間的相關距離,所述 相關距離表示所述層級結構數據中的數據單元之間的相關性;以及排序單 元,用于按照所一目關距離對所述多個候選數據單元進行排序。
根據本發明的第三個方面,提供一種基于層級結構數據的搜索方法, 其中所述層級結構數據包括與搜索請求者對應的數據單元,所述搜索方法 包括接收來自搜索請求者的搜索請求,所述搜索請求包含唯一識別所述 搜索請求者的識別信息和搜索標準;根據所述搜索請求,在所述層級結構 數據中搜索與所述識別信息對應的搜索請求者的數據單元和符合所述搜索 標準的搜索結果;以及利用上述的對搜索結果進行排序的方法,對所述搜 索結果進行排序。
根據本發明的第四個方面,提供一種基于層級結構數據的搜索引擎, 其中所述層級結構數據包括與搜索請求者對應的數據單元,所述搜索引擎 包括搜索請求接收裝置,用于接收來自搜索請求者的搜索請求,所述搜 索請求包含唯一識別所述搜索請求者的識別信息和搜索標準;搜索裝置, 用于根據所述搜索請求,在所述層級結構數據中搜索與所述識別信息對應
的搜索請求者的數據單元和符合所述搜索標準的搜索結果;以及上述的用 于對搜索結果進行排序的排序裝置,用于對所述搜索結果進行排序。
圖l是根據本發明的一個實施例的對搜索結果進行排序的方法的流程
圖2是根據本發明的另一個實施例的對搜索結果進行排序的方法的流 程圖3是根據本發明的再一個實施例的對搜索結果進行排序的方法的流 程圖4是根據本發明的一個實施例的基于層級結構數據的搜索方法的流 程圖;圖5是層級結構數據的一個例子的示意圖6是根據本發明的一個實施例的用于對搜索結果進行排序的排序裝 置的示意性方框圖7是根據本發明的另一個實施例的用于對搜索結果進行排序的排序 裝置的示意性方框圖8是根據本發明的再一個實施例的用于對搜索結果進行排序的排序 裝置的示意性方框圖9是根據本發明的一個實施例的基于層級結構數據的搜索引擎的示 意性方框圖。
具體實施例方式
相信通過以下結合附圖對本發明的具體實施例的詳細描述,本發明的 上述和其它目的、特征和優點將更加明顯。
圖1是根據本發明的一個實施例的對搜索結果進行排序的方法的流程 圖。下面結合附圖,對本實施例進行詳細描述。
在本實施例中,搜索結果是根據搜索請求者的請求在層級結構數據中 進行搜索而得到的,其包括來自層級結構數據的多個候選數據單元,并且 在該層級結構數據中還包括與搜索請求者對應的數據單元(以下稱為搜索 請求者的數據單元)。
如圖l所示,當從層級結構數據中獲得搜索結果后,在步驟110,根 據層級結構數據,計算搜索請求者的數據單元與多個候選數據單元中的每 一個候選數據單元之間的相關距離,作為搜索結果的排序標準。在層級結 構數據中,各個數據單元之間的關系(相關性)可以通過彼此之間的相關 距離來表示,并且兩個數據單元之間的相關距離越小,則這兩個數據單元 越相關。
在獲得了搜索請求者的數據單元與每一個候選數據單元之間的相關距 離后,在步驟120,按照在步驟IIO中計算出的相關距離,對搜索結果中 的多個候選數據單元進行排序,例如,按照相關距離從小到大的順序將多個候選數據單元進行排序。這樣,搜索結果中與搜索請求者的數據單元的 關系最密切的候選數據單元被排在搜索結果的最前面,從而方便搜索請求 者的進一步操作。
通過以上描述可以看出,本實施例的對搜索結果進行排序的方法能夠
間的關系,對候選數據單元進行排序,使得搜索請求者能夠很快確定與其 關系最密切的候選數據單元。
圖2 ;l才艮據本發明的另一個實施例的對搜索結果進行排序的方法的流 程圖,其中,與前面實施例相同的部分采用相同的標記,并適當省略其說 明。下面結合附圖,對本實施例進行詳細描述。
在本實施例中,當執行計算搜索請求者的數據單元與多個候選數據單 元中的每一個候選數據單元之間的相關距離的步驟110時,首先在步驟 201 ,在層級結構數據中查找搜索請求者的數據單元與每一個候選數據單元 之間的路徑,然后在步驟205,計算每一條路徑的長度,并將其作為搜索 請求者的數據單元與多個候選數據單元的每一個之間的相關距離。
然后,在步驟120中,將多個候選數據單元按照在步驟205中得到的 相關距離從小到大的順序進行排序。這樣,搜索結果中與搜索請求者的數 據單元的關系最密切的候選數據單元被排在搜索結果的最前面。
通過以上描述可以看出,本實施例的對搜索結果進行排序的方法進一
步將搜索請求者的數據單元與每一個候選數據單元之間的路徑的長度作為 相關距離以定位與搜索請求者的數據單元的關系密切的候選數據單元。
圖3是才艮據本發明的再一個實施例的對搜索結果進行排序的方法的流 程圖,其中,與前面實施例相同的部分采用相同的標記,并適當省略其說 明。下面結合附圖,對本實施例進行詳細描述。
在本實施例中,計算搜索請求者的數據單元與多個候選數據單元中的 每一個候選數據單元之間的相關距離的步驟110采用路徑反推法。
具體地,首先,在步驟301,獲取層級結構數據中從搜索請求者的數 據單元到根節點數據單元的路徑,作為搜索請求者路徑。其次,在步驟305,獲取層級結構數據中從多個候選數據單元中的每一個候選數據單元到根節
點數據單元的路徑,即獲得多條候選數據單元的路徑。然后,在步驟310, 識別位于搜索請求者路徑與每一條候選數據單元的路徑的交叉處的數據單 元,即搜索請求者的數據單元和每一個候選數據單元的共同的祖先節點數 據單元。最后,在步驟315,計算搜索請求者的數據單元與所識別的交叉
處的數據單元之間的間隔,并將其作為搜索請求者的數據單元與相應的候 選數據單元之間的相關距離。
然后,在步驟120,將多個候選數據單元按照在步驟315中得到的相 關距離從小到大的順序進行排序。這樣,搜索結果中與搜索請求者的數據 單元的關系最密切的候選數據單元被排在搜索結果的最前面。
通過以上描述可以看出,本實施例的對搜索結果進行排序的方法采用 路徑反推法計算搜索請求者的數據單元與候選數據單元之間的相關距離, 能夠更加準確地定位與搜索請求者的數據單元的關系最密切的候選數據單 元。
本領域的普通技術人員能夠理解,可以選擇上述的任意一個計算相關 距離的方法來計算搜索請求者的數據單元與候選數據單元之間的相關距 離。當然,也可以根據需要使用其它的計算相關距離的方法。
在上述的實施例中,搜索結果的排序標準是層級結構數據中搜索請求 者的數據單元與搜索結果中的候選數據單元之間的相關距離。
進一步地,在其它實施例中,搜索結果的排序標準還可以考慮搜索結 果的權重,即搜索結果還可以包括與多個候選數據單元的每一個相對應的 權重。在這種情況下,當執行了步驟110之后,按照所計算的搜索請求者 的數據單元與多個候選數據單元中的每一個候選數據單元之間的相關距離 以及每一個候選數據單元所對應的權重,對多個候選數據單元進行排序。 例如,可以對每一個候選數據單元計算其權重和與搜索請求者的數據單元 之間的相關距離的加權值,其中權重和相關距離的加權系數可以預先確定。 然后,在步驟120,將多個候選數據單元按照加權值從小到大的順序進行 排序。進一步地,在其它實施例中,搜索結果的排序標準還可以考慮層級結 構數據中的數據單元的屬性。具體地,查找多個候選數據單元中與搜索請 求者的數據單元的屬性相同的候選數據單元,例如,搜索請求者的數據單 元的屬性為工程師,則查找多個候選數據單元中屬性為工程師的候選數據
單元。然后,在排序步驟(步驟120)中,將與搜索請求者的數據單元的 屬性相同的候選數據單元和其余候選數據單元分別進行排序。本領域的普 通技術人員可以理解,上述查找步驟可以在計算步驟(步驟110)之前執 行,也可以在計算步驟(步驟110)之后執行。
進一步地,在其它實施例中,搜索結果的排序標準還可以考慮搜索結 果的權重和數據單元的屬性的結合,這對于本領域的普通技術人員來說是 容易理解的,此處省略其說明。
本領域的技術人員可以理解,上述實施例的對搜索結果進行排序的方 法可以單獨使用,也可以與現有的搜索方法、目錄服務軟件相結合。
在同一發明構思下,圖4是根據本發明的一個實施例的基于層級結構 數據的搜索方法的流程圖,其中對于與前面實施例相同的部分,適當省略 其說明。下面結合附圖詳細說明本實施例。
在本實施例中,層級結構數據包括與搜索請求者對應的數據單元,即
搜索請求者的數據單元。
如圖4所示,在步驟401,接收由搜索請求者發起的搜索請求,該搜
索請求包含有唯一識別搜索請求者的識別信息和搜索標準。識別信息用于 確定層級結構數據中搜索請求者的數據單元,并且識別信息可以是搜索請 求者的完整郵件地址、用戶ID等。
然后,在步驟410,根據該搜索請求,在層級結構數據中搜索與識別 信息對應的搜索請求者的數據單元和符合搜索標準的搜索結果,該搜索結 果包括多個候選數據單元。該步驟可以使用現有的數據搜索技術,例如模 糊匹配法、精確匹配法等。現有的數據搜索技術對于本領域的普通技術人 員是已知的,此處適當省略其說明。
在步驟410中搜索到的搜索結果中的多個候選數據單元沒有被排序或
12者按照字母順序進行排序。
然后,在步驟420,利用圖l、圖2或圖3所示的任意一個對搜索結果 進行排序的方法,對所搜索的搜索結果進行排序。排序后的搜索結果以列 表的形式返回給搜索請求者。
本領域的普通技術人員可以理解,本實施例的基于層級結構數據的搜 索方法可以單獨使用,也可以與現有的目錄服務軟件相結合。
通過以上描述可以看出,本實施例的基于層級結構數據的搜索方法不 僅能夠在層級結構數據中搜索符合搜索標準的候選數據單元,而且能夠根 據層級結構數據中搜索請求者的數據單元與候選數據單元之間的關系,對 候選數據單元進行排序,使得搜索請求者能夠很快找到所需要的搜索結果, 提高了效率。
在以上的實施例中,層級結構數據可以是樹型結構數據,例如公司的 組織結構圖。下面結合一個公司的組織結構圖的例子說明圖3所示的實施 例的具體應用。
圖5示出了層級結構數據的一個例子,即某公司的組織結構圖,其被 存儲在該公司的目錄服務器中。如圖5所示,該層級結構數據(組織結構 圖)的根節點數據單元是"總裁(ID:E1)",其子節點數據單元是"經 理MA (ID:M1),,和"經理MB (ID:M2)"。節點數據單元"經理MA (ID:M1),,的子節點數據單元是"經理ME (ID:M3)"和"經理MF (ID:M4),,,節點數據單元"經理MB (ID:M2)"的子節點數據單元 是"經理MG (ID:M5)"。節點數據單元"經理ME (ID:M3),,的子 節點數據單元是"員工EA (ID:EM1)"和"員工EB (ID:EM2)",節 點數據單元"經理MF( ID:M4 )"的子節點數據單元是"員工EB( ID:EM3 )", 節點數據單元"經理MG (ID:M5)"的子節點數據單元是"員工EB (ID:EM4)"。可以看出,在該組織結構圖中,有3名員工的姓名是相同 的,即EB。
如果員工EA想要搜索位于同一部門的員工EB,則其輸入"EB,,作 為搜索標準,該搜索標準"EB"和員工EA的識別信息"ID:EM1" —起作為搜索請求被提交給目錄服務器。目錄服務器根據該搜索請求,在組織
結構圖中進行搜索,得到員工EA的數據單元"員工EA (ID:EM1)"和 符合搜索標準"EB"的3個候選數據單元"員工EB (ID:EM2 )"、"員 工EB (ID:EM3),,和"員工EB (ID:EM4)"。
然后,獲M員工EA的數據單元和3個候選數據單元到根節點數據 單元的路徑,分別是
從員工EA的數據單元"員工EA (ID:EM1)"到根節點數據單元"總 裁(ID:E1)"的路徑EM1-M3-M1-E1;
從候選數據單元"員工EB (ID:EM2)"到根節點數據單元"總裁 (ID:E1),,的路徑EM2國M3-M1畫E1;
從候選數據單元"員工EB (ID:EM3)"到根節點數據單元"總裁 (ID:E1)"的路徑EM3-M4-M1-E1;
從候選數據單元"員工EB (ID:EM4)"到根節點數據單元"總裁 (ID:E1)"的路徑EM4-M5-M2-E1。
因此,可以獲得在從員工EA的數據單元到根節點數據單元的路徑與 其它3條從候選數據單元到根節點數據單元的路徑的交叉處的數據單元, 分別是數據單元"經理ME (ID:M3)"、"經理MA (ID:M1)"和"總 裁(ID:E1),,。
然后,計算員工EA的數據單元到各個交叉處的數據單元之間的間隔, 作為員工EA的數據單元與各個候選數據單元之間的相關距離。因此,員 工EA的數據單元"員工EA (ID:EM1)"與候選數據單元"員工EB (ID:EM2)"之間的相關距離是1,員工EA的數據單元"員工EA (ID:EM1),,與候選數據單元"員工EB (ID:EM3)"之間的相關距離 是2,員工EA的數據單元"員工EA (ID:EM1)"與候選數據單元"員 工EB (ID:EM4)"之間的相關距離是3。
然后,按照相關距離從小到大的順序排列3個候選數據單元,作為搜 索結果列表,即"員工EB (ID:EM2)"、"員工EB (ID:EM3 )"和"員 工EB(ID:EM4)",這樣,與員工EA在同一部門的員工EB (ID:EM2 )位于該列表的第一位。最后,將該搜索結果列表返回員工EA。
在同一發明構思下,圖6是根據本發明的一個實施例的用于對搜索結 果進行排序的排序裝置的示意性框圖。下面結合附圖,詳細說明本實施例。
在本實施例中,搜索結果是根據搜索請求者的請求在層級結構數據中 進行搜索而得到的,包括來自層級結構數據的多個候選數據單元,并且在 該層級結構數據中還包括與搜索請求者對應的數據單元(以下稱為搜索請 求者的數據單元)。
如圖6所示,本實施例的用于對搜索結果進行排序的排序裝置600包 括相關距離計算單元601,其根據層級結構數據,計算搜索請求者的數 據單元與多個候選數據單元中的每一個候選數據單元之間的相關距離;以 及排序單元602,其按照由相關距離計算單元601計算的相關距離對多個 候選數據單元進行排序。
具體地,當從層級結構數據中獲得包括多個候選數據單元的搜索結果 后,在相關距離計算單元601中計算搜索請求者的數據單元與每一個候選 數據單元之間的相關距離,作為搜索結果的排序標準。如前所述,相關距 離表示層級結構數據中的數據單元之間的相關性,并且兩個數據單元之間 的相關距離越小,這兩個數據單元越相關。
然后,排序單元602根據由相關距離計算單元601計算出的相關距離, 對多個候選數據單元按照相關距離進行排序,例如,可以按照相關距離從 小到大的順序對多個候選數據單元進行排序。
通過以上描述可以看出,本實施例的用于對搜索結果進行排序的排序 裝置在操作上能夠實現圖1所示的對搜索結果進行排序的方法,并達到相 同的效果。
圖7是根據本發明的另一個實施例的用于對搜索結果進行排序的排序 裝置700的示意性方框圖。其中,與前面實施例相同的部分采用相同的標 記,并適當省略其說明。下面結合附圖,對本實施例進行詳細描述。
在本實施例中,當在相關距離計算單元601中計算搜索請求者的數據 單元與每一個候選數據單元之間的相關距離時,首先路徑查找單元701在層級結構數據中查找搜索請求者的數據單元與每一個候選數據單元之間的
路徑,然后由計算單元702計算每一條路徑的長度,并將其作為搜索請求 者的數據單元與多個候選數據單元的每一個之間的相關距離。
然后,排序單元602根據由相關距離計算單元601計算出的距離,對 多個候選數據單元按照距離從小到大的順序進行排序。
通過以上描述可以看出,本實施例的用于對搜索結果進行排序的排序 裝置在操作上能夠實現圖2所示的對搜索結果進行排序的方法,并達到相 同的效果。
圖8是根據本發明的再一個實施例的用于對搜索結果進行排序的排序 裝置800的示意性方框圖。其中,與前面實施例相同的部分采用相同的標 記,并適當省略其說明。下面結合附圖,對本實施例進行詳細描述。
在本實施例中,當在相關距離計算單元601中計算搜索請求者的數據 單元與每一個候選數據單元之間的相關距離時,首先,路徑獲取單元801
請求者路徑以及從多個候選數據單元中的每一個候選數據單元到根節點數 據單元的路徑,然后,識別單元802識別位于搜索請求者路徑與每一個候 選數據單元的路徑的交叉處的數據單元,并由計算單元803計算搜索請求 者的數據單元與所識別的位于交叉處的數據單元之間的間隔,作為搜索請 求者的數據單元與多個候選數據單元中相應的候選數據單元之間的相關距 離。
然后,排序單元602根據由相關距離計算單元601計算出的相關距離, 對多個候選數據單元按照相關距離從小到大的順序進行排序。
通過以上描述可以看出,本實施例的用于對搜索結果進行排序的排序 裝置在操作上能夠實現圖3所示的對搜索結果進行排序的方法,并達到相 同的效果。
本領域的普通技術人員能夠理解,相關距離計算單元601可以采用圖 7所示的實施例中的相關距離計算單元的結構,也可以采用圖8所示的實 施例中的相關距離計算單元的結構。當然,相關距離計算單元601也可以根據需要釆用其它的結構。
進一步地,搜索結果的排序標準除了搜索請求者的數據單元與搜索結 果之間的相關距離,還可以考慮搜索結果的權重,即搜索結果還包括與多 個候選數據單元中的每一個候選數據單元相對應的權重。在這種情況下,
當相關距離計算單元601計算了搜索請求者的數據單元與每一個候選數據 單元之間的相關距離后,排序單元602按照這些相關距離以及每一個候選 數據單元所對應的權重,對多個候選數據單元進行排序。例如,在排序單
元602中,可以先計算出每一個候選數據單元的權重和搜索請求者的數據 單元與該候選數據單元之間的相關距離的加權值,其中權重和相關距離的 加權系數可以預先確定;然后將多個候選數據單元按照加權值從小到大的 順序進行排序。
進一步地,搜索結果的排序標準還可以考慮層級結構數據中的數據單 元的屬性。具體地,在上述的用于對搜索結果進行排序的排序裝置中還包 括屬性匹配單元,其查找多個候選數據單元中與搜索請求者的數據單元的 屬性相同的候選數據單元,然后,在排序單元602中,將與搜索請求者的 數據單元的屬性相同的候選數據單元和其余候選數據單元分別進行排序。
本領域的普通技術人員可以理解,上述實施例的用于對搜索結果進行 排序的排序裝置600、700或800可以單獨使用,也可以與現有的搜索引擎、 目錄服務軟件相結合。
在同一發明構思下,圖9是根據本發明的一個實施例的基于層級結構 數據的搜索引擎的示意性方框圖,其中對于與前面實施例相同的部分,適 當省略其i兌明。下面結合附圖,詳細說明本實施例。
在本實施例中,層級結構數據包括與搜索請求者對應的數據單元,即
搜索請求者的數據單元。
如圖9所示,本實施例的基于層級結構數據的搜索引擎900包括搜 索請求接收單元901,其接收來自搜索請求者的搜索請求,該搜索請求包 含有唯一識別該搜索請求者的識別信息和搜索標準;搜索單元卯2,其根
據所接收的搜索請求,在層級結構數據中搜索與識別信息對應的搜索請求
17者的數據單元和符合搜索標準的搜索結果;以及如圖6或圖7或圖8所示 的用于對搜索結果進行排序的排序裝置600或700或800,其對由搜索單 元902搜索到的搜索結果進行排序。
具體地,當搜索請求者發起搜索請求時,搜索請求接收單元卯l接收 到該搜索請求。如前所述,搜索請求中包含搜索請求者的識別信息和搜索 標準,搜索請求者的識別信息可以是完整的姓名或者用戶ID等,用于在 層級結構數據中確定與搜索請求者對應的數據單元。搜索請求接收單元 901將該搜索請求傳輸到搜索單元902,由搜索單元902根據識別信息在層 級結構數據中搜索出搜索請求者的數據單元,根據搜索標準在層級結構數 據中搜索出包括多個候選數據單元的搜索結果,并將搜索請求者的數據單 元和搜索結果發送到排序裝置600或700或800,以對搜索結果進行排序。 排序后的搜索結果以列表的形式返回給搜索請求者。
本領域的普通技術人員可以理解,本實施例的基于層級結構數據的搜 索引擎卯0可以單獨使用,也可以與目錄服務軟件相結合。
通過以上描述可以看出,本實施例的基于層級結構數據的搜索引擎能 夠在操作上實現圖4所示的基于層級結構數據的搜索方法,并達到相同的 效果。
應當指出,上述實施例的用于對搜索結果進行排序的排序裝置600、 700和800以瓦基于層級結構數據的搜索引擎900及其組件可以由諸如超 大規模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導體、或者諸如 現場可編程門陣列、可編程邏輯設備等的可編程硬件設備的硬件電路實現, 也可以用由各種類型的處理器執行的軟件實現,也可以由上述硬件電路和 軟件的結合實現。
以上雖然通過一些示例性的實施例詳細描述了本發明的對搜索結果進 行排序的方法、排序裝置、基于層級結構數據的搜索方法和搜索引擎,但 是以上這些實施例并不是窮舉的,本領域技術人員可以在本發明的精神和 范圍內實現各種變化和修改。因此,本發明并不限于這些實施例,本發明 的范圍僅由所附的權利要求限定。
權利要求
1. 一種對搜索結果進行排序的方法,其中上述搜索結果包括來自層級結構數據的多個候選數據單元,并且所述層級結構數據還包括與搜索請求者對應的數據單元,所述方法包括根據所述層級結構數據,計算所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的相關距離,所述相關距離表示所述層級結構數據中的數據單元之間的相關性;以及按照所述相關距離,對所述多個候選數據單元進行排序。
2. 根據權利要求1所述的對搜索結果進行排序的方法,其中,所述 計算所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的 相關距離的步驟包括查找所述層級結構數據中所述搜索請求者的數據單元與所述多個候選 數據單元的每一個之間的路徑;以及計算每一條所述路徑的長度,作為所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的相關距離。
3. 根據權利要求1所述的對搜索結果進行排序的方法,其中,所述 計算所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的 相關距離的步驟包括單元的搜索請求者路徑;獲取所述層級結構數據中從所述多個候選數據單元的每一個到根節點 數據單元的路徑;識別位于所述搜索請求者路徑與所述多個候選數據單元的每一個的路 徑的交叉處的數據單元;以及計算所述搜索請求者的數據單元與所識別的交叉處的數據單元之間的 間隔,作為所述搜索請求者的數據單元與所述多個候選數據單元中相應的 候選數據單元之間的相關距離。
4. 根據權利要求1至3任意一項所述的對搜索結果進行排序的方法, 其中,上述搜索結果還包括與上述多個候選數據單元的每一個相對應的權重;所述對所述多個候選數據單元進行排序的步驟包括 按照所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的相關距離以及所述多個候選數據單元的每一個所對應的權重,對所述多個候選數據單元進行排序。
5. 根據權利要求1至4任意一項所述的對搜索結果進行排序的方法, 還包括查找所述多個候選數據單元中與所述搜索請求者的數據單元的屬性相 同的候選數據單元;其中,所述對所述多個候選數據單元進行排序的步驟還包括對與所分別進行排序。
6. 根據權利要求1至5任意一項所述的對搜索結果進行排序的方法, 其中,所述層級結構數據是樹型結構數據。
7. —種用于對搜索結果進行排序的排序裝置,其中上述搜索結果包 括來自層級結構數據的多個候選數據單元,并且所述層級結構數據還包括 與搜索請求者對應的數據單元,所述排序裝置包括相關距離計算單元,用于根據所述層級結構數據,計算所述搜索請求 者的數據單元與所述多個候選數據單元的每一個之間的相關距離,所勤目 關距離表示所述層級結構數據中的數據單元之間的相關性;以及排序單元,用于按照所i^目關距離對所述多個候選數據單元進行排序。
8. 根據權利要求7所述的用于對搜索結果進行排序的排序裝置,其 中,所勤目關距離計算單元包括路徑查找單元,用于查找所述層級結構數據中所述搜索請求者的數據 單元與所述多個候選數據單元的每一個之間的路徑;以及計算單元,用于計算每一條所述路徑的長度,作為所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的相關距離。
9. 根據權利要求7所述的用于對搜索結果進行排序的排序裝置,其 中,所勤目關距離計算單元包括路徑獲取單元,用于在所述層級結構數據中獲#所述搜索請求者的 數據單元到根節點數據單元的搜索請求者路徑以及從所述多個候選數據單 元的每一個到根節點數據單元的路徑;識別單元,用于識別位于所述搜索請求者路徑與所述多個候選數據單 元的每一個的路徑的交叉處的數據單元;以及計算單元,用于計算所述搜索請求者的數據單元與所識別的交叉處的 數據單元之間的間隔,作為所述搜索請求者的數據單元與所述多個候選數 據單元中相應的候選數據單元之間的相關距離。
10. 根據權利要求7至9任意一項所述的用于對搜索結果進行排序的 排序裝置,其中,上述搜索結果還包括與上述多個候選數據單元的每一個 相對應的權重;所述排序單元用于按照所述搜索請求者的數據單元與所述多個候選數 據單元的每一個之間的相關距離以及所述多個候選數據單元的每一個所對 應的權重,對所述多個候選數據單元進行排序。
11. 根據權利要求7至10任意一項所述的用于對搜索結果進行排序的 排序裝置,還包括屬性匹配單元,用于查找所述多個候選數據單元中與所述搜索請求者 的數據單元的屬性相同的候選數據單元;其中,所述排序單元用于將與所述搜索請求者的數據單元的屬性相同 的候選數據單元和其余候選數據單元分別進行排序。
12. 根據權利要求7至11任意一項所述的用于對搜索結果進行排序的 排序裝置,其中,所述層級結構數據是樹型結構數據。
13. —種基于層級結構數據的搜索方法,其中所述層級結構數據包括 與搜索請求者對應的數據單元,所述搜索方法包括接收來自搜索請求者的搜索請求,所述搜索請求包含唯一識別所述搜索請求者的識別信息和搜索標準;根據所述搜索請求,在所述層級結構數據中搜索與所述識別信息對應 的搜索請求者的數據單元和符合所述搜索標準的搜索結果;以及利用權利要求i至6任意一項所述的對搜索結果進行排序的方法,對 所述搜索結果進行排序。
14.一種基于層級結構數據的搜索引擎,其中所述層級結構數據包括 與搜索請求者對應的數據單元,所述搜索引擎包括搜索請求接收裝置,用于接收來自搜索請求者的搜索請求,所述搜索 請求包含唯一識別所述搜索請求者的識別信息和搜索標準;搜索裝置,用于根據所述搜索請求,在所述層級結構數據中搜索與所 述識別信息對應的搜索請求者的數據單元和符合所述搜索標準的搜索結 果;以及如權利要求7至12任意一項所述的用于對搜索結果進行排序的排序裝 置,用于對所述搜索結果進行排序。
全文摘要
本發明提供了一種對搜索結果進行排序的方法,其中上述搜索結果包括來自層級結構數據的多個候選數據單元,并且所述層級結構數據還包括與搜索請求者對應的數據單元,所述方法包括根據層級結構數據,計算所述搜索請求者的數據單元與所述多個候選數據單元的每一個之間的相關距離,該相關距離表示層級結構數據中的數據單元之間的相關性;以及按照所述相關距離,對所述多個候選數據單元進行排序。本發明能夠根據層級結構數據中候選數據單元與搜索請求者的數據單元之間的關系,對候選數據單元進行排序,使得搜索請求者能夠很快確定與其關系最密切的候選數據單元。本發明還提供相應的排序裝置以及基于層級結構數據的搜索方法和搜索引擎。
文檔編號G06F17/30GK101425068SQ20071018496
公開日2009年5月6日 申請日期2007年10月30日 優先權日2007年10月30日
發明者剛 史, 琦 郭 申請人:國際商業機器公司