TW201248436A - Multi-layer search-engine index - Google Patents

Multi-layer search-engine index Download PDF

Info

Publication number
TW201248436A
TW201248436A TW101110414A TW101110414A TW201248436A TW 201248436 A TW201248436 A TW 201248436A TW 101110414 A TW101110414 A TW 101110414A TW 101110414 A TW101110414 A TW 101110414A TW 201248436 A TW201248436 A TW 201248436A
Authority
TW
Taiwan
Prior art keywords
file
vocabulary
index
search
information
Prior art date
Application number
TW101110414A
Other languages
English (en)
Other versions
TWI549005B (zh
Inventor
Chad Perry Walters
Xiaosong Yang
Hui Shen
Mao Yang
Lin-Tao Zhang
Ying Yan
zhen-yu Zhao
Jesse Choong-Soon Chang
Xiao Wu
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW201248436A publication Critical patent/TW201248436A/zh
Application granted granted Critical
Publication of TWI549005B publication Critical patent/TWI549005B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

201248436 六、發明說明: 【發明所屬之技術領域】 本發明係關於:多層搜尋-弓丨擎索引。 【先前技術】 用於定位文件(例如網頁)的策略包含:呈遞搜尋查詢 至搜尋引擎,該等文件透過網路(例如網際網路)而為可 獲得使用的。一些網路包含大量的文件,以使得回應於 搜尋查詢而搜尋每一個別的文件係不可行的。從而,搜 尋引擎經常包含:資訊的索引,該資訊的索引以一方式 來組織化以賦能搜尋引擎以:識別與該搜尋查詢相關的 文件。當回應於搜尋查詢時,分析該索引可為耗費成本 的服務(意即可需要相對為大量的計算資源)。 與處理在搜尋-引擎索引中的資訊相關聯之成本可取 決於各種因素。舉例而言,索引的結構和包含在索引中 的資訊量可影響成本。此外’被使用以分析該索引的計 算元件可影響成本。 【發明内容】 由於則述原因在此提供本發明的各種態樣之高層級的 總覽,以提供本揭示的總覽及作出選擇性觀念的介紹, 該等觀念進—步於後文的【實施方式】的段落中描述。 此【發明内容】無意於識別所請求中請標的之關鍵特徵 201248436 或必要特徵’及無意於被單獨地使用而作為助益以決定 所請求申請標的之範圍。簡要地及處於高層級地,此揭 示&述(除了其它事項之外(among 〇tller things ))搜尋 -引擎索引,該搜尋-引擎索引被利用以服務(serve)搜尋查 詢0 在此私述的申睛標的包含:多層搜尋-引擎索引。舉例 而。,搜尋-引擎索引的一部分包含:詞彙索引(term index),及搜尋-引擎索引的另一部分包含:文件索引 (d〇CUment index)。可使用各種計算元件來服務(serve)該 詞彙索引和該文件索引,例如固態硬碟(s〇Hd_state drive) ° 【實施方式】 在此明確地描述本發明的選擇實施例之申請標的以符 合法定要求。但是描述本身無意於定義:被視為所請求 的發明者;而是,此者為:申請專利範圍所請求者。所 清求的申請標的可利用其它的方·式來體現以包含:不同 的步驟或類似於在此文件中所描述者的步驟之組合,以 與其它目前或未來的技術相結合。詞彙不應被解釋為: 暗示在此揭示的各個步驟之間任何特定的順序,除非和 除了當各個步驟的順序被清楚地陳述的時候。 如同所指示者’在此描述的申請標的包含:多層搜尋_ 引擎索引。從而,搜尋-引擎索引被分為多個索引,該等 201248436 索引的每一索引包含:個別集合的資訊,該資訊被使用 、服務(思即回應於)查詢。一個索引包含:詞彙索引, °亥°司彙索引組織集合的詞彙,該等詞彙會在集合的文件 間被找到。舉例而言,若1〇〇個文件為可獲得使用的而 哥词彙索引組織每一可搜尋詞彙,該詞彙會在每 文件的内容間被找到。另一索引包含:文件索引,該 ^件索引組織可搜尋的集合的文件。繼續進行已給定的 … 若1 〇 〇個文件為可獲得使用的而被搜尋,文件索 °匕έ · 100個集合的文件特定(d〇cumen卜spa出C) 的:Λ ’其中該等集合的每-集合描述:個別的文件。 。十-裝置被使用以服務搜尋·引擎索引(意即當識別與搜 尋查詢相關的文件時分析該索引從而,目前將描述示 例性計算裝置。 十刀始特定地參照至第 一 ,▼'八,〜个奴%的I她例 不例性作業環境被顯示及一般性地被指定為計算裝置 =計算裝置_僅為適當的計算環境的—個實例,及 、忍於螭不關於本發明的實施例之使用範圍或功能性的 =限制》計算環境⑽不應被解釋為··具有關於所示 •說明的元件之任何—者或組合的任何相依性或要求。 ―,發明的實施例可用電腦代碼或機器可使用的指令之 般性上下文來描述,包含電腦 描 1 钒仃才日令,例如程式 、'、、,该等指令係由電腦或其它的機 Λ ^ 饵窃爪執仃,例如個 人資料助理或其它的手持裝置。_ 裎卡 & 而§ ,包含常式、 式、物件、元件、資料結構等等的程式模組意指:執 201248436 打特定任務或實施特定抽象資料型別的代碼。本 實施例可被實施在各種系統組態中,包含手持裝置、消 費者電子裝置、一般性目的電腦、更為特殊性計算裝置 等等。本發明的實施例亦可實施於分散式計算環境中、, 其中任務係由遠端處理裝置執行,該等遠端處理裝置係 透過通sfL網路來鏈結。 、 參照至第!圖,計算裝置100包含:匯流排⑽,該 匯流排直接或間接地耦合下列裝置:記憶體ιΐ2、一或 多個處理$ 114、一或多個呈現元件116、輸入/輸出谭 118輸入/輸出兀件i 2〇及示例說明性功率供應1U。匯 流排110代表:一或多個匯流排者(例如位址匯流排、資 料匯流排或所述者之組合)。雖然為了清楚起見,第i圖 的各個區塊用線段來圖示,實際上,描繪各個元件並非 如此得清楚,及隱喻地,線段更精確地為灰色和模糊的。 舉例而言,吾人可考慮呈現元件(例如顯示裝置)以作 為I/O元件。亦者,處理器具有記憶體。吾人認識到: 此者係技術的本質,及重申:第i圖的示圖僅示例說明 示例性什算裝置,該計算裝置可與本發明的一或多個實 施例結合使用。不在例如為「工作站J、「伺服器」、「膝 上型電腦」、「手持裝置」等等的類型之間作出區別,如 在第1圖的範圍内考慮的所有者及對「計算裝置」的參 計算裝置100典型地包含:各種電腦可讀取媒體。電 腦可讀取媒體可為:任何可獲得使用的媒體,該等媒體 201248436 可由叶算裝置100存取’及包含:揮發性和非揮發性媒 體—者、可移除和不可移除媒體二者。藉由實例的方式, 隹限制,電腦可讀取媒體可包含:電腦儲存媒體和通 訊媒體。 夕電腦儲存媒體包含:揮發性和非揮發性、非暫時、可 、不可知除媒體,該等媒體以任何方法或技術來實 =以儲存資訊,例如電腦可讀取指彳、資料結構、程式 权組或其它資料。電腦儲存媒體包含:RAM、ROM、 EEPR〇M、快閃記憶體或其它的記憶體技術、CD-ROM、 ,位影音光碟(DVD)或其它的光碟儲存、磁性卡g、磁 可及磁碟儲存或其它的磁性儲存裝置,纟令每一者可被 使用以儲存所欲資訊及可由計算裝置100存取。 通訊媒體典型地體現電腦可讀取指令、資料結構、程 式模組或在調變資料訊號中的其它資料,例如載波或其 它的傳輸機制,及包含:任何資訊傳送媒體。詞彙「調 變的資料訊號(m〇dulated data signal)j意指:訊號,♦亥 訊號具有—或多個特性集,或以此方式改變以將資訊編 碼在該訊號t。藉由實例的方式,通訊媒體包含:有線 媒體’例如有線網路或直接線路連接,及無線媒體,例 如聲音、RF、紅外線及其它的無線媒體。前述的任何者 之組合應亦被包含在電腦可讀取媒體的範圍内。 記憶體112包含:電腦儲存媒體,該電腦儲存媒體具 有揮發性及/或非揮性記憶體的形式。記憶體可為:可移 除的、不可移除的或所述者之級合。示例性硬體裝置包 201248436 各.固態記憶體、硬蹲她 • 磾拽、光碟機等等。計算裝置1〇〇 或夕個處理$,該等處理器從各種實體讀取資 料,例如記憶ϋ112或1/〇元件12〇。呈現元件(多個)ιΐ6 至現資料指示至使用者或其它裝置。示例性i現元件包 S 員不裝置、揚聲器、列印元件、振動元件等等。 1/0蜂118允許計算褒置1⑼邏輯地耦合至包含I/O元 件120的其它裝置’ &中一些者可為内建的。示例說明 ^元件包含··麥克風、摇桿、遊戲手把、衛星碟、掃描 器、印表機、無線裝置等等。 导别參照至第2圖’其中描另-示例性計算環境 210。環境2H)包含:客戶端計算裝置212,該客戶端計 算裝置與搜尋引擎2 14交換資訊,例如藉由網路(例如網 際網路)。舉例而言,客戶端212傳送資訊216至搜尋引 擎214。資訊216被描繪在分解示圖218中,該分解示 圖描繪:資訊2 16包含搜尋查詢。示例性搜尋查詢包含: 搜尋词彙「食品雜貨(gr〇cery)」。環境2丨〇亦描繪:搜尋 引擎214傳送資訊220至客戶端212 ,及資訊220被描 繪在分解示圖222中。分解示圖222指示:資訊220包 含搜尋-結果網頁(search-results webpage),例如網頁的 列表,該等網頁已被視為與包含在資訊2 16中的搜尋查 °旬相關。示例性搜尋詞彙「食品雜貨(gr〇cery)」將遍及 在各種說明中的此描述被使用。 搜尋引擎214包含各種元件,該等元件與另一者相通 訊及賦能搜尋引擎214以將文件視為與搜尋查詢相關。 201248436 舉例而言’搜尋引擎2 14包含:複數個計算裝置(意即計 算裝置1、計算裝置2…計算裝置X),其中每一者處理個 別集合的文件。第2圖描繪:計算裝置1處理文件1 _ 1 〇 〇, 計算裝置101-200處理文件101-200等等。搜尋引擎214 的元件一同運作以決定:文件1 _N的何者與接收的搜尋 查詢相關。舉例而言,搜尋引擎214包含:搜尋-查詢接 收器(search-query receiver)224,該搜尋-查詢接收器接收 搜尋查詢,該等搜尋查詢被傳送至搜尋引擎2 14。搜尋 引擎214亦包含:匹配器226及排序器228。 匹配器2 2 6識別數個文件,該等文件係搜尋查詢或搜 尋詞彙的匹配者。「匹配(match)」係典型地藉由匹配演 异法的應用來決定,該匹配演算法當決定文件是否為搜 尋查詢的匹配者時考慮到各種因素。舉例而言,匹配演 算法當決定該文件是否為匹配者時,考慮到:搜尋詞囊 在文件的内容間出現的次數。匹配器2 2 6可識別:儲存 在每一計算裝置(意即計算裝置i到χ)上包含搜尋詞彙 的所有文件。可替代性地,可建立匹配臨界值,以使得 匹配器226識別:並未超過該匹配臨界值的數個匹配的 文件。舉例而言,若匹配臨界值為:五個文件,則匹配 1§ 226識別在每一計算裝置上與搜尋查詢相匹配的前五 個文件。當匹配器進行一些估測-排序活動 (estimated-ranking activities)或預先排序活動 (pre-ranking activities)時,匹配器226可不指定:在此 些識別的匹配的文件間任何的最後搜尋_結果 10 201248436 (search-result)的排序。 排序器228接收由匹配器226視為匹配者的文件之— 識別,及在彼此間排序此些匹配的文件。舉例而古,— 排序器228接收前面的匹配的文件(例如作為匹配者的前 面的五個文件)之識別,排序器228應用排序演算法以= 定:前面的匹配的文件之每一者的個別的排序。排序演 算法可考慮各種因素,其中的―些者亦可由匹配器咖 來考慮,及其甲的其它者僅由排序器228來評估。 如同所指示者,當應用匹配演算法或排序演算法時, 匹配斋226及排序器228並不必然地重新檢視每一文件 的全部内容。而是’搜尋引擎214包含:資訊的索引, 該資訊的索引包含:從文件的每一者取出的僅有的選擇 資訊。該等索引代表可搜尋文件的濃縮版本…⑽心…以 veMon)’及該等索引典型地相較於文件的全文更為有效 率地加以分析(例如利用匹配演算法和排序演算法)。 搜尋引擎214包含:計算裝置2 (由參照編號23〇而識 別),當服務搜尋查詢時,計算裝置2處理文件1〇1_2〇〇。 舉例而言’計算裝置2決;t文件⑻.·的何者被視為 與搜尋查㈤「食品雜貨(grc)eery)」相關。文彳 被描繪在分解示圖232中,該分解示圖示例說明:被使 用以組織和總括文件101_200的各種資訊結構。 一種被使用以組織文件101_200的資訊結構包含:詞 彙索引234。詞彙索引234係反向索引(invertedindex), 該反向索引包含:纟文件101_200的内容間會被找到的 11 201248436 可搜尋詞彙。詞彙索引234包含:集合的詞彙記錄(term postings)(例如「記錄列表i (p〇sting list丨)」'「記錄列 表2 (posting list 2)」等等),該等詞彙記錄的每一者包 含:關於個別的詞彙之資訊。記錄可用各種順序排置, 例如按照字母順序或按照詞彙的普遍性。第2圖描繪: 記錄236包含與搜尋詞彙「食品雜貨(gr〇cery)」相關的 資訊。 典型地’每一詞彙記錄包含:被使用以決定文件是否 相關於(意即匹配於)搜尋查詢的資訊。舉例而言,詞彙 記錄236包含三個資訊集合(意即由參照編號238、24〇 及242所識別),該等資訊集合的每一者包含:與包含詞 彙「食品雜貨(grocery)」的個別的文件(例如網頁)相關的 資訊。與許多詞彙索引相反,詞彙索引234忽略某種類 型的資訊’例如位置資訊,該位置資訊指示:在每一文 件内s司彙可被找到的位置。舉例而言,資訊集合242並 不包含:指示在文件M3中何處可找到詞彙「食品雜貨 (grocery)」的任何資訊。藉由忽略某種類型的資訊,詞 彙索引234更小,藉此減少與匹配搜尋詞彙相關聯的計 算成本。雖然詞彙記錄230忽略某種類型的資訊(例如位 置資all ),邊資訊當應用排序演算法時係由排序器2 2 8使 用’詞彙記錄2 3 6包含:其它類型的資訊,該資訊被使 用於匹配演算法以識別前面的文件匹配者,例如詞彙頻 率(意即詞彙在文件中被找到的次數)。 第2圖描繪:資訊集合242包含:與文件M3相關的 12 201248436 資訊’該文件M3包含:詞彙「食品雜貨(gr〇cery)」。舉 例而言,資訊集合242包含:標籤「文件Μ3資訊(D〇c Μ3 Info)」,該標籤指示資訊242包含:與文件Μ3相關的資 訊。育訊集合242以一方式來編碼,該方式平衡下列期 望.具有減少用以解碼資訊集合242所需的CPU使用之 目的,而限制記憶體的利用。舉例而言,使用以識別文 件M3的文件識別符被插入:「食品雜貨(gr〇cery)」的詞 彙頻率。雖然在此描述詞彙頻率以達到說明性目的,其 它的資訊亦可(或替代性地)用該文件識別符來編碼,該 文件識別符對於決定文件是否為對查詢詞彙的匹配者係 有用的。 在一個實施例中,文件識別符可為增量編碼( encoded )的可變整數’然而詞彙頻率係可變整數。從而, 示例性資訊當維持於詞彙索引234時可採取下列的形 式: 解碼的版本(Decoded Version) [UInt64] + : m,tfi D2, TF2, D3, TF3, ... ’ 編碼的版本(Encoded Version) [UInt64] + : m,tfi D2-D1, TF2, D3-D2, TF3, 替代性的編碼機制(在該編碼機制中文件識別符被插 入詞彙頻率)考慮亦許多詞彙頻率低於臨界值(例如” 的事實。從而’保留一數量的位元以儲存編碼的文件資 訊(意即文件識別符和詞彙頻率)。在此編碼機制下,當 詞彙頻率低於頻率_數值(frequency_value)的臨界值^ 13 201248436 如3 )時,該數量的位元被使用以編碼詞彙頻率,及額外 的位元組並不被使用以編碼頻率欄位。此外,按照此機 制’當詞彙頻率超過頻率-數值的臨界值,額外的位元組 被使用以編碼該頻率欄位。此編碼機制可允許.較佳的壓 縮率’以作為減低的解碼效能的交換。從而,示例性資 訊當維持於詞彙索引234時及當TF攔位固定為2位元時 可採取下列的形式: 解碼的資訊(decoded information)[UInt64] + : Dl,TF1, D2, TF2, D3} TF3, ... 編碼的 > 机(encoded information)[UInt64] + : Dl, D2-D1, TF2Exception,D3-D2, ... 其中,解碼邏輯係: 若(TF S3)則 使用2位元以用於TF ’並無額外的TF欄位 此外 2位元=“〇〇” ’具有額外的TF攔位 TF =額外的TF攔位的數值+3 在另外的實施例,在記錄中區塊可被使用以包含:出 現(occurrences)之群組。舉例而言,區塊可被使用以包 吞.資集合238、24〇及242。在此實施例中,選擇[SB 位元的數值(N),以使得在該區塊中最高的詞彙頻率係在 2 N-1内,及其匕的㈣彙頻率附在例外列表(excepti〇n 〖Μ) 中而附加至該區塊的開始處或結束處。在每一群組中, 文件索引首先被編碼為Varlnt,而後詞彙頻率例外地被 14 201248436 編碼(每個詞彙頻率用2位元)。 基於、為碼機制和排序資訊的忽略相對於包含排序資 訊或使用替代性的編碼機制之其它的索引,詞彙索引234 已3 .車又小的總大小(total size )。此較小的大小(Size ) 允許較多的文件符合記憶體元件(例如SSD、HDD等 等),及減小當執行匹配操作時所導致的cpu成本。在 一個實施例中’該詞彙索引被儲存在記憶體和SSD中及 -同在記憶體和SSD中被服務,藉此利用索引服務最佳 化舉例而5,可應用在記憶體中/在緩衝區中的快取架 構0 第2圖亦描繪:詞彙-索引查找表格244,該詞彙-索引 一找表格匕3 · Ss)彙「食品雜貨(gr〇cery)」對在詞彙索 引234中的特定位置之映射。映射係藉由箭頭246來表 示舉例而5,映射246可為對應到在記憶體或SSD中 的位置,藉此有助於定位記錄2S6對於「食品雜貨 (grocery)」的起始點。 如同所指示者,資訊集合242包含:文件識別符,該 文件識別符被使用以識別與「文件M3(D〇c M3)」相關的 資訊。舉例而言,箭頭248描繪:文件識別符可在每個_ 文件索引查找表格(per-document-index lookup table)25G t破查找’該每個.文件_索引查找表格映射該 文件識別符至在每個_文件索引(per_d〇cument index) 252 中的位置文件-排序 > 矾(document-ranking information) 被維持在該每個-文件索引的該位置處。 15 201248436 每個-文件索引252以每個-文件為基礎來組織化,以 使知·每一每個-文件索引表格將關於特定文件的資訊分 類。意即’若計算裝置2 23〇包含:文件1〇12〇〇,則每 個-文件索引252包含:對於包含在文件1〇1_2〇〇的文件 之每一者的每個-文件索引表格。方盒254、256及258 代表關於文件1〇1、167及2〇〇(個別地)的資訊。每一每 個-文件索引表格包含:豐富的資訊,該資訊係由排序器 218使用以決定個別的文件之排序。意即,排序器218 將攸每個-文件索引表格取出的資訊置入排序演算法以 決定在搜尋結果間文件的排序。文件-排序資訊的實例包 含:可典型地被包含在詞彙索引中的資訊(例如位置資 訊)’但該資訊已從該詞彙索引中被忽略,以為了減小該 =彙索引的大小。此外’每—每個文件索引表格可包 含.被使用以產生標題或片段的資訊(例如文件本身的拷 貝)’該資訊被使用以代表在搜尋_結果列表中的文件。 目前參照至第3圖’其中描繪來自每個_文件索引31〇 的示例性資訊。意即,騎在第3圖中的資訊代表:可 被包含在特定文件的每個_文件索引表格中的資訊。第3 圖描繪:特定文件的資訊包含:索引標頭306、映射314 及詞彙索引3 12。 示例性索引標頭306包含·曰1〜一 匕3 .目則的文件貧料(例如靜 排序、長度等等)。此外,和 )此外橾頭306可包含:描述包含 文件中的數個詞彙類別(你丨如#。, 莱頰^例如類別1、類別2及類別3) 八匕的文件特徵(例如語言)的資訊。 16 201248436
包含在每個·文件索引中的資訊亦包含:所有可搜尋詞 彙之識別’該等詞彙被包含在文件的内容間。此些詞彙 使用全域的詞彙-至_w〇rdID映射(term t〇-w〇rdiD PPingm4來編碼。第3圖指示:映射3i4包含:靜態 映射表格3 1 8,邊靜態映射表格被使用以將普遍的詞彙 映射至1或2位元組的整數。此外,映射314包含雜湊 函數320以將較不普遍的詞彙映射至8•位元組的雜凑數 值。使用映射314,在詞彙索引312中的所有的詞囊並 不用原始的文字格式來儲存,藉此節省空間。更為特定 而言,包含在詞彙索引312中的每一詞彙被映射至 w〇rdm(例如整數)。在詞彙索引312中,相對於該詞彙, WordID被儲存。從而,當查找在反向詞彙索引312中的 詞彙(例如食品雜貨(grocery))時,該詞彙首先在映射中被 查找以識別WordID ’及而後WordID在詞彙索引3 12中 被參照。 如同所指示者,WordID可包含:二個變化中之_者· 固定的映射(來自318)或雜湊映射(來自32〇)。_般而 言,普遍的詞彙接收WordID,該WordID使用固定的映 射方法來產生,以使得每一詞彙映射至在" 2k l]的空 間中的預先定義(pre-defined)的數字。基於詞彙的普遍 性’ 1或2位元組被使用以產生個別的WordID。為了促 進更快的搜尋,映射可被建立至與每個-文件索引相關聯 的記憶體中。在示例性的實施例中,前面255個時常出 現的詞彙使用1位元組的WordID來表示,及此此時常 17 201248436 出現的詞彙在詞彙索引312中被分類為類別i。下個前
面-64K(top_64K)的詞棄在詞彙索引312中被識別為Z :2的詞彙及由2位元組m來表示。詞彙對類別丄的詞 彙和類別2的詞彙二者的偏⑴之映射(使用例如雜 凑映射架構)可被明確地儲存在記憶體中。基於此些〒 例性的大小,及假設:平均詞彙文字長度係25位元I不 此映射表格將使用大約位元組的記憶體。 在另外的實例中,較不普遍的詞彙係由6或8位元电 1爾來表示(來自32〇)及在詞彙索引312中被識別為 類別3。對在類別3的每一詞彙而言,偏1〇係詞彙文 字的雜凑數值。假設:文件具有平均刪個獨有的詞 彙’二個詞彙可在該文件中相抵觸的機料c (2,1〇 Μ叫/2〜對議的文件全集,|有文詞相抵觸的文 件之總數目大約為1〇Β/245 = 〇 〇〇〇3。 詞彙索引312係反向詞彙索引312,該反向詞囊索引 列出可搜尋詞彙的wordID ’該等可搜尋詞彙被包含在气 文件的内容間。每一詞囊記錄包含:當詞囊自身關聯: 該文件時與此個別的詞彙相關的資訊。舉古,4 項目的最高位元指示:對此詞彙是否具有多於—個的記 錄(意即此詞彙是否在該文件的内容間被找到多於二 次)。若詞囊僅在該文件的内容間被找到_次,則記錄位 置被儲存在項目(entry)的較低位元。此情;兄係由箭頭似 來描繪。然而,若該詞彙在該文件的内容間被找到多於 -次,則該項目的較低位元包含:指向記錄列表的溢位 18 201248436
來描繪。 此情況係由箭頭326 溢位陣列330儲存用於在文件的内 内容間具有多於一個
置資訊,及大小取決於該亡从.
配者已由匹配器226所識別, u平例而言,一旦文件匹 排序器2 2 8從每一文件匹 配者的個別的每個-文件索引中擷取資訊,及決定在文件 匹配者間個別的排序。在一個實施例中,每個-文件索引 表格被儲存在固態記憶體中,藉此利用1/〇效能能力。 舉例而言,匹配的文件(意即被匹配器識別為匹配者 的文件)之每個-文件索引資訊可依需要載入。 藉由應用多層索引方法,如同前文所描述者,多個查 s旬可被平行地服務。舉例而言,當第一查詢的處理從匹 配器226進行至排序器228,在相同的計算裝置上的第 二查詢之匹配處理可開始進行,即使該第一查詢依然正 由排序器228處理。此外,在SSD中的服務詞彙索引234 和每個-文件索引304允許搜尋引擎214利用SSD的效能 能力以用於更為有效率的查詢服務。 目前參照至第4圖,流程圖描繪:一系列的步驟,該 19 201248436
方法4 1 〇。 步驟。 戶尽第2圖和第3圖以達到說明 ,電腦_儲存媒體包含:體現於 當執行該等指令時,執行在第 而言,由參照編號260和262 個別地由匹配器和排序器來 和262時’進行方法41〇的 方法4 1 0在步驟 收搜尋查詢,該拇 ^驟412包含以下步驟:藉由搜尋引擎接 該搜尋查詢包含:搜尋詞彙。舉例而言, 如同已描述者,搜尋-查詢接收器224接收包含「食品雜 貨(grocery)」的搜尋查詢以作為搜尋詞彙。搜尋引擎 包含:詞彙索引234,該詞彙索引具有多個記錄,及記 錄236包含:關於搜尋詞彙「食品雜貨(gr〇cery)」的資 步驟414包含以下步驟:重新檢視詞彙記錄,該詞彙 記錄具有關於搜尋詞粲的資訊,其中關於搜尋詞彙的資 訊包含:該文件的文件識別符,該文件的該文件識別符 包含搜哥詞彙。舉例而言’重新檢視記錄2 3 6,該記錄 包含.「文件M3 (Doc M3)」的文件識別符,該「文件 M3(Doc M3)」的文件識別符包含:在文件M3(Doc M3) 内容間的詞囊「食品雜貨(grocery)」。 在步驟41 6中,文件識別符被使用以參照在每個-文件 索引中的文件-排序資訊,其中該文件-排序資訊被使用 20 201248436 以私定搜尋-結果排序至該文件。舉例而言,箭頭248代 表被使用以參照文件-排序資訊的文件識別符。如同前文 所描述者,文件識別符在查找表格250中被映射至在每 個-文件索引中的文件排序資訊之位置。 按”?、步驟4 1 8,提供(serve)搜尋結果,其中該文件的列 表被呈現為與搜尋-結果排序相一致。舉例而言,提供資 Λ 220至客戶端212,該資訊包含搜尋_結果網頁。搜尋_ 結果網頁基於由排序器228決定的排序資訊來產生。 方法4 1 〇描述:用於服務搜尋查詢的步驟。當使用多 層搜尋-引擎索引時,如在此所描述者,查詢_服務流程 可和與單一的索引一同使用的該流程維持為相類似,例 如藉由從匹配於排序估計的文件移動至最後的排序。然 而,當搜尋引擎利用分別的索引及固態硬碟的輸入/輸出 效能能力,可增進查詢-服務效能,例如藉由平行地執行 多個搜尋查詢。 目剐參照至第5圖’另一流程圖描繪:一系列的步驟, 該等步驟促進對在搜尋-引擎索引中的文件(例如由資訊 集合256描述的文件167)進行索引而允許搜尋引擎以評 定文件對搜尋查詢(例如「食品雜貨(grocery)」)的相關性 之方法510。當描述第5圖時,亦可參照第2圖和第3 圖以達到說明性目的。在一個實施例中,電腦_儲存媒體 包含:體現於其上的電腦可執行指令’當該等指令被執 行時,執行在第5圖中所識別的步驟。 方法5 1 0在步驟5 1 2包含以下步驟:指定文件識別符 21 201248436 至S亥文件。舉例而言,當第2圖的文件M3(Doc M3)進行 處理,文件識別符被指定至文件M3及被儲存在每個-文 件-索引查找表格中。步驟5 14包含以下步驟:決定詞彙 被包含在文件的内容間所具有的頻率。舉例而言,計算 "司彙食品雜貨(grocery)」被包含在文件M3的次數。 如同已描述者,搜尋^擎索引包含:詞彙索引234,該 。可彙索引包含.詞彙記錄236,該詞彙記錄具有與詞彙(意 即「食品雜貨(grocery) j )相關的資訊。 …' v称5 1 6,文件識別符與頻率一起被編碼以產生 扁I的文件資机。言司錢記錄經變換以包含編碼的文件資 Λ处此外,步驟5 1 8包含以下步驟:儲存集合的文件排 f資訊在每個-文件索引(分別於詞彙索引)中。當處理搜 2 。句時,文件_排序資訊被使用以排序該文件。舉例而 舌,詞彙記錄236被更新以包含在資訊集合242中的編 碼的文件資訊。同樣地,包含在資訊256的每個·文件索 |表格儲存.從文件M3取出的文件-排序資訊。 前述已描述:數個元件之系統,該等元件可使用於對 文件進行索引及服務搜尋-引擎查詢。舉例而言,描繪在 ㈣和第3圖的系統包含:多個索引(例如詞彙索引234 ,母個-文件索引31〇),該等索引組織個別集合的資訊, 。玄等索?1對匹配器226、排序器咖及其它的搜尋引擎 ::::可獲得使用的。此外’已描述:可使用前文描述 Μ Μ擎元件來執行的方法’例如用於服務搜尋查詢 .法和用於對文件進行索引的方法。 22 201248436 /斤杬、.曰的各種元件和未顯示的元件之許多不同的排置 係可此的,而不偏離後文的申請專利範圍之範疇。已描 述了。人的技術之實施例,意欲作為示例說明性,而非 限生替代性的實施例對此揭示的讀者而言在閱讀該 揭不之後及因為進行了該揭示的閱讀而將變為顯明的。 可完成:實施前述者的替代性構件(means),而不偏離後 文的申味專利範圍之範疇。特定的特徵和子組合係實用 的及可不參照其它的特徵和子組合來運用,及特定的特 徵和子組合被考慮在申請專利範圍的範疇内。 【圖式簡單說明】 於後文中參照隨附圖式詳細地描述本發明的示例說明 性實施例,其中: 第1圖和第2圖每一者描繪個別的示例性計算環境。 第3圖描緣在每個·文件索引(per_d〇cument index)中分 類的資訊之實例;及 第4圖和第5圊包含:描繪個別的方法之流程圖。 【主要元件符號說明】 23 201248436 100 計算裝置 236 記錄 110 匯流排 238 資訊集合 112 記憶體 240 資訊集合 114 處理器 242 資訊集合 116 呈現元件 244 詞彙-索引查找表格 118 輸入/輸出槔 246 映射 120 輸入/輸出元件 248 箭頭 122 功率供應 250 每個-文件-索引查找表 210 計算環境 格 212 客戶端計算裝置 252 每個-文件索引 214 搜尋引擎 254 方盒 216 資訊 256 方盒 218 分解示圖 258 方盒 220 資訊 260 應用程式 222 分解示圖 262 應用程式 224 搜尋-查詢接收器 306 索引標頭 226 匹配器 310 每個-文件索引 228 排序器 312 詞彙索引 230 計算裝置2 314 映射 232 分解示圖 318 靜態映射表格 234 詞彙索引 320 雜湊函數 324 箭頭 326 箭頭 330 溢位陣列 24 201248436 410方法/步驟 4 1 2 方法/步驟 4 1 4方法/步驟 4 1 6方法/步驟 418方法/步驟 5 1 0 方法/步驟 512方法/步驟 514方法/步驟 516方法/步驟 518 方法/步驟

Claims (1)

  1. 201248436 七、申請專利範圍: r —種具有體現於其上的電腦可執行指令之電腦_儲存 媒體,當該等指令被執行時進行將—文件視為與一搜尋 查詢相關的方法’該方法包含以下步驟:藉由一搜尋引 擎接收該搜尋查詢,該搜尋查詢包含:一搜尋喟彙,苴 中該搜尋引擎包含:一詞囊索引,及其中該詞囊索引包 3 .複數個詞彙記錄’言亥等詞彙記錄的每—者包含··關 於-個別的詞彙之資訊;重新檢視—詞彙記錄,該詞彙 記錄具有與該搜尋㈣相關的資訊,其中與該搜尋詞囊 相關的該資訊包含:該文件的一文件識別符該文件的 該文件識別符包含:該搜尋詞彙;使用該文件識別符以 參照在-每個-文件索引中的文件_排序資訊,其中該文 件-排序資tfl被使用㈣定—搜尋·結果排序至該文件, 及其中該文件-排序資訊依需要(ondemand)載入以被使 用於指定該搜尋'结果排4 ;及提供(serving)搜尋結果, 其中該文件的一列表被呈現為與該搜尋-結果排序相-致。 2·如申》月專利範圍帛1項所述之電腦-儲存媒體,其中 以司彙索引與該每個_文件索引二者被儲存在一固態硬 碟(solid-state drive)中’該詞囊索引與該每個-文件素引 代表分別的索引。 26 201248436 3. 如申請專利範圍第1項所述之電腦-儲存媒體,其中 該搜尋引擎利用該等分別的索引及該固態硬碟的輸入/ 輸出的效能能力二者以平行地執行多個搜尋查詢。 4. 如申請專利範圍第丨項所述之電腦_儲存媒體,其中 關於該搜尋詞彙的該資訊包含:文件匹配資訊,該文件 _匹配資訊被使用以決定:該文件係該搜尋詞彙的一匹配 者0 5.如申請專利範圍第1項所述之電腦-儲存媒體,其中 使用5玄文件谶別符以參照、在—每個_文件索引中的文件_ 排序資訊之步驟包含以下步驟:定位在一每個-文件-索 引查找表格中的該文件識別符,該文件識別符包含:一 指標’該指標指向儲存在—固態硬碟中的該文件_排序資 訊。 W π /丁、 許-搜尋引擎評定該文件對一搜尋查詢的一相關性之方 法,該方法包含以下步驟:指定一文件識別符至該文件. 決定一詞彙被包含在該文件的内容間所具有的一頻率, =中該搜尋·引擎索^含:―詞彙㈣,制彙索引包 3 . 一詞彙記錄,該詞蚤印你Β 士也 j臬π己錄具有與該詞彙相關的資訊. 將該文件識職連⑽_進行編m生編碼的文件 貧訊,其令該詞索記錄經變換以包含該編瑪的文件資 27 201248436 讯,及儲存一集合的文件_排序資訊在一每個-文件 中。亥每個-文件索引分別於該詞彙索引,其中當處王p 搜尋查β時’該文件排序資訊被使用以排序該文件。〆 7. 如申請專利範圍第6項所述之方法,其中當進 時’ S亥文件識別符和該頻率被插入。 " 8. 如申請專利範圍第7項所述之方法’其中當進行編石馬 時’ d文件識別符係一增量編碼()的可辦 整數及該頻率係一可變整數。 — 9.如申明專利範圍第7項所述之方法,其中一數量的位 元被保留以儲存該編碼的文件資訊,其中當該頻率低於 -頻率-數值的臨界值,該數量的位元被使用以編碼詞囊 頻率’及額外的位元組並不被使用以編碼一頻率攔位, 及其中當該頻率超過該頻率·數值的臨界值,額外的位元 組並不被使用以編碼該頻率攔位。 10. 如申請專利範圍第6項所述之方法,其中在該詞囊記 錄中出現(。咖⑽⑽)之—群組被包含在_區塊中。 11. 如申請專利範圍第6項所沭夕古土 J ^ λ 堉所述之方法,其中該集合的 文件-排序> 包含:可指慕叫备 筏寸d彙的一列表,該等可搜尋 〇司囊被包含在該文件的內交 叶们円谷間,及其中被包含在該等可 28 201248436 搜分θ果的$列表上的每—可搜尋詞彙藉由針對每一可 搜尋詞彙指定—個別的預先定義的全域詞彙識別符來編 碼’該預先定義的全域詞彙識別符被使用以識別遍及在 該每個-文件索引内的每—可搜尋詞彙。 &如申請專利範圍第u項所述之方法,其中該等可搜 尋詞彙的該列表在-文件_特定反向表格巾被組織化,該 文件-特疋反向表格包含:全域詞彙識別符的一列表其 中》玄等王域1 2 3 4 5 §)彙識別符的每一者被映射至一個別的可搜 尋詞彙。 13. 如申請專利範圍第12項所述之方法,其中在該文件_ 特定反向表格中的每一記錄包含:出現資料,該出現資 料扣示.該個別的可搜哥詞彙在該文件中出現的次數。 14. 如申請專利範圍第丨3所述之方法,其中當該次數大 於一臨界值,該出現資料被維持於一溢位列表(〇verfl〇w list)中。 29 1 5 · —種包含耦合至電腦-儲存媒體的一處理器和將一文 2 件視為與一搜尋查詢相關的系統,該系統包含:一搜尋_ 3 查詢接收器’該搜尋-查詢接收器接收該搜尋查詢,該搜 4 尋查詢包含:一搜尋詞彙;一詞彙索引,該詞彙索引包 5 含:—詞彙記錄’該詞彙記錄將該搜尋詞彙連同該文件 201248436 的一文件識別符分類,該文件的該文件識別符包含:該 搜尋詞彙;一匹配器’該匹配器重新檢視該詞彙索引以 決定:該文件識別符被包含在該詞彙記錄中,藉此指示: 該文件包含該搜尋詞嚢;一每個-文件索引包含:文件_ 排序資訊’該文件-排序資訊被使用以決定該文件的一搜 尋·結果排序;及一排序器,該排序器應用一排序演算法 至該文件-排序資訊以決定該搜尋-結果排序。 16. 如申請專利範圍第15所述之系統,其中該詞彙索引 與該每個-文件索引二者被儲存在一固態硬碟中,該詞彙 索引與該每個-文件索引代表分別的索引。 17. 如申請專利範圍第16項所述之系統媒體,其中一搜 哥引擎利用該等分別的索引及該固態硬碟的輸入/輸出 的效能能力以平行地執行多個搜尋查詢。 18. 如申請專利範圍第15項所述之系統,進一步包含: 每個文件索引查找表格,該每個-文件-索引查找表格 將該文件識別符映射至在—©態硬碟中的該文件-排序 資訊。 19·如申°月專利範圍帛1 5項所述之系、统,進一步包含: 玉戍司彙至-6弓彙-識別符映射,該全域詞彙-至-詞彙_ 識別符映射將可;{虫# μ 1 i A J搜号詞彙映射至一個別的識別符’該識 30 201248436 別符被使用以編碼一個別的可搜尋詞彙。 2 0.如申請專利範圍第1 9項所述之系統,其中該文件-排序資訊包含:一文件-特定反向表格,該文件-特定反 向表格儲存個別的識別符,該等識別符映射至包含在該 文件中的個別的可搜尋詞彙。 31
TW101110414A 2011-03-24 2012-03-26 多層搜尋引擎索引 TWI549005B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2011/072092 WO2012126180A1 (en) 2011-03-24 2011-03-24 Multi-layer search-engine index
US13/428,709 US8959077B2 (en) 2011-03-24 2012-03-23 Multi-layer search-engine index

Publications (2)

Publication Number Publication Date
TW201248436A true TW201248436A (en) 2012-12-01
TWI549005B TWI549005B (zh) 2016-09-11

Family

ID=46878611

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105100303A TWI578176B (zh) 2011-03-24 2012-03-26 多層搜尋引擎索引
TW101110414A TWI549005B (zh) 2011-03-24 2012-03-26 多層搜尋引擎索引

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW105100303A TWI578176B (zh) 2011-03-24 2012-03-26 多層搜尋引擎索引

Country Status (3)

Country Link
US (2) US8959077B2 (zh)
TW (2) TWI578176B (zh)
WO (1) WO2012126180A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355113B2 (en) 2013-01-17 2016-05-31 Google Inc. Encoding and decoding delta values
US10977229B2 (en) 2013-05-21 2021-04-13 Facebook, Inc. Database sharding with update layer
US9311252B2 (en) 2013-08-26 2016-04-12 Globalfoundries Inc. Hierarchical storage for LSM-based NoSQL stores
US9411836B2 (en) 2013-12-13 2016-08-09 International Business Machines Corporation Facilitating consistency between a glossary and a repository
WO2015165104A1 (zh) 2014-04-30 2015-11-05 华为技术有限公司 查找装置及方法
US9767016B2 (en) 2014-07-28 2017-09-19 Empire Technology Development Llc Generation of search index
US9645739B2 (en) 2014-09-26 2017-05-09 Intel Corporation Host-managed non-volatile memory
US10430472B2 (en) * 2015-02-26 2019-10-01 Cavium, Llc Apparatus and method for collecting responses to a plurality of parallel lookup queries from a flow of packets at a network switch
US20170116194A1 (en) * 2015-10-23 2017-04-27 International Business Machines Corporation Ingestion planning for complex tables
US10572544B1 (en) * 2015-12-14 2020-02-25 Open Text Corporation Method and system for document similarity analysis
WO2018066144A1 (ja) * 2016-10-07 2018-04-12 富士通株式会社 インデックス付きデータ生成プログラム、インデックス付きデータ生成方法、インデックス付きデータ生成システム、検索プログラム、検索方法、および検索システム
US10754859B2 (en) * 2016-10-28 2020-08-25 Microsoft Technology Licensing, Llc Encoding edges in graph databases
US11360958B2 (en) 2017-09-29 2022-06-14 Apple Inc. Techniques for indexing and querying a set of documents at a computing device
CN108875810B (zh) * 2018-06-01 2020-04-28 阿里巴巴集团控股有限公司 针对训练语料从词频表中进行负例采样的方法及装置
CN115080684B (zh) * 2022-07-28 2023-01-06 天津联想协同科技有限公司 网盘文档索引方法、装置、网盘及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544352A (en) * 1993-06-14 1996-08-06 Libertech, Inc. Method and apparatus for indexing, searching and displaying data
US5701469A (en) 1995-06-07 1997-12-23 Microsoft Corporation Method and system for generating accurate search results using a content-index
JPH1049549A (ja) 1996-05-29 1998-02-20 Matsushita Electric Ind Co Ltd 文書検索装置
JP2001167087A (ja) 1999-12-14 2001-06-22 Fujitsu Ltd 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
US7630963B2 (en) * 2003-06-30 2009-12-08 Microsoft Corporation Fast ranked full-text searching
US7620624B2 (en) * 2003-10-17 2009-11-17 Yahoo! Inc. Systems and methods for indexing content for fast and scalable retrieval
US7849063B2 (en) * 2003-10-17 2010-12-07 Yahoo! Inc. Systems and methods for indexing content for fast and scalable retrieval
US7370037B2 (en) * 2003-12-29 2008-05-06 International Business Machines Corporation Methods for processing a text search query in a collection of documents
US7337165B2 (en) * 2003-12-29 2008-02-26 International Business Machines Corporation Method and system for processing a text search query in a collection of documents
US7693825B2 (en) * 2004-03-31 2010-04-06 Google Inc. Systems and methods for ranking implicit search results
US20060004977A1 (en) * 2004-06-30 2006-01-05 Joefon Jann Autonomically tuning the virtual memory subsystem of a computer operating system
US7720845B2 (en) * 2004-08-13 2010-05-18 Yahoo! Inc. Systems and methods for updating query results based on query deltas
US8234378B2 (en) * 2005-10-20 2012-07-31 Microsoft Corporation Load balancing in a managed execution environment
TWI274264B (en) * 2005-11-08 2007-02-21 Fashionow Co Ltd Distributed index search method and system
US20070233672A1 (en) * 2006-03-30 2007-10-04 Coveo Inc. Personalizing search results from search engines
US7765215B2 (en) * 2006-08-22 2010-07-27 International Business Machines Corporation System and method for providing a trustworthy inverted index to enable searching of records
US7693813B1 (en) * 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US7890488B2 (en) * 2007-10-05 2011-02-15 Yahoo! Inc. System and method for caching posting lists
KR101565975B1 (ko) 2009-02-27 2015-11-04 삼성전자주식회사 인덱스를 저장하는 플래시 메모리를 포함하는 사용자 장치 및 그것의 인덱스 액세스 방법
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
JP2012531674A (ja) 2009-06-26 2012-12-10 シンプリヴィティ・コーポレーション ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け
US8205025B2 (en) * 2009-08-12 2012-06-19 Globalspec, Inc. Efficient buffered reading with a plug-in for input buffer size determination

Also Published As

Publication number Publication date
TWI578176B (zh) 2017-04-11
US8959077B2 (en) 2015-02-17
US20150161265A1 (en) 2015-06-11
US9959347B2 (en) 2018-05-01
TW201627890A (zh) 2016-08-01
US20120271813A1 (en) 2012-10-25
WO2012126180A1 (en) 2012-09-27
TWI549005B (zh) 2016-09-11

Similar Documents

Publication Publication Date Title
TW201248436A (en) Multi-layer search-engine index
US8117215B2 (en) Distributing content indices
US7254580B1 (en) System and method for selectively searching partitions of a database
US8554854B2 (en) Systems and methods for identifying terms relevant to web pages using social network messages
CN103377232B (zh) 标题关键词推荐方法及系统
US8209325B2 (en) Search engine cache control
US7174346B1 (en) System and method for searching an extended database
US7505956B2 (en) Method for classification
US8620951B1 (en) Search query results based upon topic
US8069176B1 (en) LSH-based retrieval using sub-sampling
US20080065602A1 (en) Selecting advertisements for search results
US20100287149A1 (en) Method and apparatus for reconstructing a search query
US20150169754A1 (en) Online image analysis
US20090210389A1 (en) System to support structured search over metadata on a web index
TW201128421A (en) Content-based image search
JP2012515379A (ja) 情報をクエリするための方法およびシステム
US20090083024A1 (en) Apparatus, method, computer program product, and system for machine translation
WO2002101588A1 (fr) Systeme de gestion de contenus
WO2010043970A2 (en) System and method for distributed index searching of electronic content
US9262511B2 (en) System and method for indexing streams containing unstructured text data
US7765204B2 (en) Method of finding candidate sub-queries from longer queries
Asadi et al. Fast candidate generation for two-phase document ranking: Postings list intersection with Bloom filters
US20090083214A1 (en) Keyword search over heavy-tailed data and multi-keyword queries
US8650195B2 (en) Region based information retrieval system
US20150286722A1 (en) Tagging of documents and other resources to enhance their searchability