TWI480746B - 使用經結構化之資料儲存器達到較快速全文檢索 - Google Patents
使用經結構化之資料儲存器達到較快速全文檢索 Download PDFInfo
- Publication number
- TWI480746B TWI480746B TW099138570A TW99138570A TWI480746B TW I480746 B TWI480746 B TW I480746B TW 099138570 A TW099138570 A TW 099138570A TW 99138570 A TW99138570 A TW 99138570A TW I480746 B TWI480746 B TW I480746B
- Authority
- TW
- Taiwan
- Prior art keywords
- token
- string
- hash value
- tokens
- fields
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本申請案大體而言係關於全文檢索及經結構化之資料儲存器。更特定言之,其係關於使用經結構化之資料儲存器達到較快速全文檢索。
大體而言,文件或資料儲存系統獨立地解決以下問題:檢索未經結構化之資料及檢索經結構化之資料、分別根據優先權屬於未經結構化之檢索(如Google檢索引擎)抑或屬於經結構化之檢索(如Oracle資料庫)來實施全文索引系統或資料庫系統中之一者或兩者。實施兩者之系統可提供兩者之特徵但以付出在預備此等儲存庫(及其相關聯之索引)中之每一者時所招致之效能懲罰與單獨儲存過度耗用兩者為代價。典型取捨為僅實施一者且針對較適合於另一系統之查詢類型而經受緩慢之查詢時間效能。
充分利用一傳統的經結構化之資料儲存器以另外提供未經結構化之全文檢索系統的許多益處,藉此藉由附帶儲存過度耗用及插入效能懲罰來避免預備兩個相異索引/儲存庫中之資料的過度耗用。將獨立於資料之任何規則單欄式解譯之欄添加至傳統的經結構化之資料儲存器,藉此產生「增強型經結構化之資料儲存器」(ESDS)。所添加之欄使得能夠使用可以全速(如與標準資料庫管理系統(DBMS)設施相對比,諸如SQL查詢中之「like」子句)執行之標準全文查詢語法/技術來檢索其所儲存之資料。換言之,所添加之欄充當檢索索引。
將固定數目個「擴充」欄添加至傳統的經結構化之資料儲存器以形成增強型經結構化之資料儲存器(ESDS)。將達到較快速全文檢索之資料剖析為符記(例如,字詞)。每一符記基於彼符記之雜湊值而儲存於適當之擴充欄中。使用一雜湊方案來判定該雜湊值,該雜湊方案基於符記之值而非符記之意義(其中該意義係基於在經結構化之資料儲存器中符記將通常對應之「欄」或「欄位」)來操作。此使得能夠將後續檢索表示為全文查詢,而不使隨後之檢索降級為跨越單一blob欄位或跨越每個欄之蠻力掃描。
可使用任何雜湊方案。不同之雜湊方案將基於正儲存之資料之統計分佈而產生不同之效能等級(例如,不同之檢索速度)。在一實施例中,該雜湊方案將來自該符記自身(亦即,來自該符記之值)之字元用作該雜湊值。在另一實施例中,基於一符記之長度(亦即,字元之數目)來判定一符記之雜湊值。在又一實施例中,將該符記之長度屬性與另一屬性(例如,來自符記之字元)組合以判定該雜湊值。
當一使用者查詢該增強型經結構化之資料儲存器(ESDS)時,其可使用標準全文查詢語法。舉例而言,該使用者可鍵入「狐狸」作為查詢。基於正使用之該雜湊方案而將該查詢「狐狸」轉譯為標準資料庫查詢語法(例如,經結構化之查詢語言或「SQL」)。舉例而言,若該雜湊方案將一符記之第一字元用作該符記之雜湊值,則「狐狸」將被轉譯為「where欄位F=「狐狸」」之SQL或「where欄位F含有「狐狸」」之SQL。若該雜湊方案將一符記之第二字元用作該符記之雜湊值,則「狐狸」將被轉譯為「where欄位O=「狐狸」」之SQL或「where欄位O含有「狐狸」」之SQL。
該等擴充欄位可直接支援短語檢索。將一字串剖析為符記,且每一個別符記儲存於擴充欄位中。除此等「標準」符記外,額外符記亦儲存於該等擴充欄位中。舉例而言,出現於一字串中之每一符記對亦以短語次序儲存於一適當之擴充欄位中,且因此可用於檢索。在一實施例中,一符記對包括藉由一特殊字元(例如,底線字元「_」)而分離之第一符記及第二符記。該_字元指示該第一符記及該第二符記以彼次序出現於字串中且彼此鄰近。個別符記與符記對兩者可儲存於擴充欄位中。該等擴充欄位亦可藉由儲存額外符記來直接支援「開始」及「結束」檢索,該等額外符記使用特殊字元來指示關於標準符記之額外資訊(諸如,該標準符記是一字串中之第一符記抑或一字串中之最後符記)。
上文所描述之該等技術(例如,基於符記之值及一雜湊方案而將符記儲存於擴充欄位中)可與任何經結構化之資料儲存器一起使用。舉例而言,可將該技術與一基於列之資料庫管理系統(DBMS)一起使用。然而,該技術特別適合於一基於欄之DBMS。一基於欄之DBMS為有利的,因為該技術將查詢限制至一必須含有一給定檢索項之特定欄(擴充欄位)(即使終端使用者根本未指定一欄)。無需檢查(或甚至載入)列之其他欄位以便判定一結果。
描述於本說明書中之特徵及優點並非皆為包括性的,且詳言之,鑒於圖式、說明書及申請專利範圍,許多額外特徵及優點對於一般熟習此項技術者將係顯而易見的。主要出於易讀性及指令性目的而選擇本說明書中所使用之語言,且該語言可能並非經選擇以劃定或限定所揭示之主題。
僅藉由說明,諸圖及以下描述係關於本發明之實施例。可在不脫離所主張之內容之原理的情況下使用此處所揭示之結構及方法之替代實施例。
現將詳細參考若干實施例,其實例說明於隨附圖式中。在任何可實踐之處,類似或相似之參考數字可用於諸圖中且可指示類似或相似之功能性。諸圖僅出於說明之目的來描繪所揭示之系統(或方法)之實施例。熟習此項技術者將易於自以下描述認識到,在不脫離本文中所描述之原理的情況下,可使用本文中所說明之結構及方法之替代實施例。
如本文中所使用,術語「經結構化之資料」指代對其元素或組成要素(atom)具有一定義之結構的資料。經結構化之資料之一實例為儲存於關係資料庫中之列。經結構化之資料之另一實例為試算表之列,其中特定欄中之單元總是儲存特定類型之資料(例如,欄A中之單元總是儲存地址,且欄B中之單元總是儲存社會安全號碼)。正文檔案通常為未經結構化之資料,因為文件並不指示關於任何給定字詞之顯著性的內容(除可藉由查看字詞自身所推斷的內容之外)。換言之,不存在關於資料之中繼資料,而僅為資料自身。然而,若添加標示(諸如,在每一動詞前之<verb>標記),則文件將具有某一結構。具有結構描述為強制實行結構之另一方式。
如本文中所使用,術語「經結構化之資料儲存器」指代具有欄及用於該等欄之資料類型(亦即,結構描述)的資料儲存器。儲存於經結構化之資料儲存器中之資料一致地組織至適當之欄中。經結構化之資料儲存器之一實例為關係資料庫。經結構化之資料儲存器之另一實例為試算表。
在一實施例中,充分利用傳統的經結構化之資料儲存器以另外提供未經結構化之全文檢索系統之許多益處,藉此藉由附帶儲存過度耗用及插入效能懲罰來避免預備兩個相異索引/儲存庫中之資料的過度耗用。將獨立於資料之任何規則單欄式解譯之欄添加至傳統的經結構化之資料儲存器,藉此產生「增強型經結構化之資料儲存器」(ESDS)。所添加之欄使得能夠使用可以全速(如與標準資料庫管理系統(DBMS)設施相對比,諸如SQL查詢中之「like」子句)執行之標準全文查詢語法/技術來檢索其所儲存之資料。換言之,所添加之欄充當檢索索引。
可以各種方式儲存將達到全文檢索之資料。一選項為將所有資料作為單一blob(二進位大型物件)儲存於一所添加之欄中。可接著檢索此欄位中之值。然而,使用此方法之全文檢索將為耗時的。
另一選項為將資料剖析為符記(例如,字詞)且將每一符記儲存於其自身所添加之欄中。因此,資料將在若干欄當中散開而非作為一blob儲存於單一欄中。此方法之一問題為所添加之欄之數目將基於資料之內容及/或格式(具體言之,資料中之符記之數目)而改變。又,使用此方法之全文檢索將為耗時的。
在一實施例中,將固定數目個「擴充」欄添加至傳統的經結構化之資料儲存器以形成增強型經結構化之資料儲存器(ESDS)。每一符記基於彼符記之雜湊值而儲存於適當之擴充欄中。使用一雜湊方案來判定該雜湊值,該雜湊方案基於符記之值而非符記之意義(其中該意義係基於在經結構化之資料儲存器中符記將通常對應之「欄」或「欄位」)來操作。此使得能夠將後續檢索表示為全文查詢,而不使隨後之檢索降級為跨越單一blob欄位或跨越每個欄之蠻力掃描。
考慮使用僅四個「基本」欄位來儲存「事件」(全文俗語中之「文件」或DBMS俗語中之「列」)之傳統的經結構化之資料儲存器:時間戳記欄位、計數欄位、偶然事件描述欄位及錯誤描述欄位。為將一事件儲存於傳統的經結構化之資料儲存器中,自事件描述提取時間戳記值、計數值、偶然事件描述值及錯誤描述值或基於事件描述內所含有之資訊來判定該等值。接著將時間戳記值、計數值、偶然事件描述值及錯誤描述值分別儲存於傳統的經結構化之資料儲存器中之一項目的時間戳記欄位、計數欄位、偶然事件描述欄位及錯誤描述欄位中。可接著存取或查詢時間戳記值、計數值、偶然事件描述值及錯誤描述值。由於儲存時間戳記值、計數值、偶然事件描述值及錯誤描述值,所以其可經受全文檢索。然而,全文檢索將需要蠻力檢索,因為不存在檢索索引。
現在,增強傳統的經結構化之資料儲存器以便支援對事件資訊之較快速全文檢索。具體言之,將36個擴充欄位添加至4個現存基本欄位(如上文所解釋,時間戳記、計數、偶然事件描述及錯誤描述)以便產生增強型經結構化之資料儲存器(ESDS)。ESDS因此使用40個欄位來儲存一事件:4個基本欄位及36個擴充欄位。該等基本欄位基於資料之意義來儲存經結構化之資料。該等擴充欄位基於每一符記之值來儲存事件符記。在所說明之實施例中,對於總計36個擴充欄位而言,針對字母表中之每一字母(A至Z,總共26個字母表欄位)及針對每一數位(0至9,總共10個數字欄位)而包括一擴充欄位。換言之,使用40個欄位來儲存一事件:時間戳記、計數、偶然事件描述、錯誤描述、A、B、...、Y、Z、0、1、...、8、9。
圖1展示根據本發明之一實施例的事件描述之一實例及如何可在增強型經結構化之資料儲存器中表示彼事件描述。在圖1中,如下讀取事件:
3:40 am:一隻敏捷的棕毛狐狸躍過那隻懶狗3次
為了將事件資訊儲存於ESDS中,將該事件剖析為符記。自事件描述提取(或基於事件描述內所含有之資訊來判定)「經結構化之」資料且將其儲存於基本欄位中。識別事件資訊之需要標以索引(亦即,達到較快速全文檢索)的部分。此部分可為(例如)儲存於基本欄位中之值或整個事件描述。彼部分之符記儲存於擴充欄位(檢索索引)中且因此能夠以較快速方式進行全文檢索。應注意,可將一個符記儲存兩次-一次儲存於基本欄位中且一次儲存於擴充欄位中。
在所說明之實例中,自事件描述提取(或基於事件描述內所含有之資訊來判定)時間戳記值(3:40 am)、計數值(3)、偶然事件描述值(一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次)及錯誤描述值(在3:40 am之不尋常跳躍活動)且分別將該等值儲存於時間戳記基本欄位、計數基本欄位、偶然事件描述基本欄位及錯誤描述基本欄位中。假定僅需要偶然事件描述值達到高速全文檢索。將偶然事件描述值剖析為13個符記,即:1)一隻、2)敏捷的、3)棕毛、4)狐狸、5)躍、6)過、7)那隻、8)懶、9)狗、10)3、11)次、12)在,及13)3:40 am。該13個符記中之每一者根據彼符記之雜湊值而儲存於擴充欄位中。
假定雜湊方案選擇符記之第一字元作為彼符記之雜湊值。接著將該符記儲存於適當之擴充欄位中。符記1(「一隻」)將具有雜湊值「A」且因此儲存於「A」欄位中,符記2(「敏捷的」)將具有雜湊值「Q」且因此儲存於「Q」欄位中,符記3(「棕毛」)將具有雜湊值「B」且因此儲存於「B」欄位中,等等。圖1展示如何可在增強型經結構化之資料儲存器中表示事件資訊,該增強型經結構化之資料儲存器使用上述40個欄位(4個基本欄位及36個擴充欄位)及第一字元雜湊方案且使得能夠以較快速方式來偶然事件描述值全文檢索。
應注意,符記1(「一隻」)及符記2(「敏捷的」)各自儲存兩次-一次儲存於基本欄位(偶然事件描述)中及一次儲存於擴充欄位(分別為「A」及「Q」)中。又,符記1(「一隻」)及符記12(「在」)具有同一雜湊值(「A」)且因此皆儲存於同一欄位(「A」)中。
現在,假定需要偶然事件描述值與錯誤描述值兩者達到高速全文檢索。將來自此等值之符記儲存於適當之擴充欄位中。應注意,僅一組擴充欄位(例如,36個擴充欄位)有必要儲存符記,即使正儲存來自兩個不同值(偶然事件描述值及錯誤描述值)之符記亦如此。
舉例而言,圖1展示如何將偶然事件描述值之符記儲存於擴充欄位中。若亦需要錯誤描述值達到高速全文檢索,則將該值剖析為5個符記(「不尋常」、「跳躍」、「活動」、「在」及「3:40 am」),且將彼等符記儲存於擴充欄位中。「不尋常」符記將具有雜湊值「U」且因此儲存於「U」擴充欄位中,等等。
回想偶然事件描述值業已達到高速全文檢索。此情形導致「在」符記(來自偶然事件描述值內)儲存於「A」擴充欄位中。錯誤描述值亦包括符記「在」。在一實施例中,擴充欄位指示一符記作為一個整體在一事件中(例如,在事件之達到高速檢索之所有部分中)之存在或缺乏。在此實施例中,一符記將每事件僅儲存一次(即使彼符記在該事件中出現多次)。因此,在此實施例中,即使符記「在」出現在偶然事件描述值與錯誤描述值兩者中,符記「在」仍將僅儲存一次。
應注意,下文結合短語檢索所論述之符記對可包括業已儲存之符記。舉例而言,除符記「在」之外,可儲存符記對「次_在」及「在_3:40 am」(來自偶然事件描述值)。作為另一實例,亦可儲存符記對「活動_在」(來自錯誤描述值)。在上述實施例中,將不儲存符記對「在_3:40 am」(來自錯誤描述值),因為其業已結合符記對「在_3:40 am」(來自偶然事件描述值)而儲存。
檢索查詢可指示一符記必須出現於特定基本欄位內。在此情形中,在任何處(例如,在已達到高速全文檢索之事件之任何基本欄位中)含有彼符記之事件可基於該符記在該事件內之確切位置而經受進一步處理。舉例而言,若一事件在特定基本欄位內不含有符記,則可自一組檢索結果消除彼事件。
圖2為根據本發明之一實施例之系統的方塊圖,該系統使用增強型經結構化之資料儲存器達到較快速全文檢索。系統200能夠對儲存於增強型經結構化之資料儲存器(ESDS)中之事件資訊(具體言之,對儲存於ESDS之擴充欄位中的事件資訊)執行較快速全文檢索。所說明之系統200包括全文檢索系統205、儲存器210及資料儲存器管理系統215。
在一實施例中,全文檢索系統205及資料儲存器管理系統215(及其組件模組)為儲存於一或多個電腦可讀儲存媒體上且在一或多個處理器上執行的一或多個電腦程式模組。儲存器210(及其內容)儲存於一或多個電腦可讀儲存媒體上。另外,全文檢索系統205及資料儲存器管理系統215(及其組件模組)以及儲存器210至少就可在其間傳遞資料的程度而言以通信方式彼此耦接。
全文檢索系統205包括多個模組,諸如控制模組220、剖析模組225、映射模組230、雜湊模組235及查詢轉譯模組240。控制模組220控制全文檢索系統205(亦即,其各種模組)之操作使得全文檢索系統205可將事件資訊儲存於增強型經結構化之資料儲存器(ESDS)245中且對儲存於ESDS之擴充欄位中之事件資訊執行較快速全文檢索。下文將參看圖3(儲存)及圖4(檢索)來論述控制模組220之操作。
剖析模組225基於分隔符號(delimiter)將字串剖析為符記。分隔符號大體被劃分為兩個群組:「空白字元」分隔符號及「特殊字元」分隔符號。空白字元分隔符號包括(例如)空格、定位字元(tab)、新行及換行。特殊字元分隔符號包括(例如)大多數剩餘非文數字字元,諸如逗號(「,」)或句號(「。」)。在一實施例中,分隔符號為可組態的。舉例而言,可基於正被剖析之資料(例如,資料之語法)來組態空白字元分隔符號及/或特殊字元分隔符號。
在一實施例中,剖析模組225基於一組分隔符號及修整策略(稱為「符記化」)而將字串分割為符記。在一實施例中,預設分隔符號集合為{「 」、「\n」、「\r」、「,」、「\t」、「=」、「|」、「,」、「[」、「]」、「(」、「)」、「<」、「>」、「{」、「}」、「#」、「\'」、「"」、「0」},且預設修整策略為忽略出現在符記之開頭或結尾的特殊字元(除{「/」、「-」、「+」}之外)。分隔符號可為靜態或內容相關性的(context-sensitive)。內容相關性之分隔符號之實例為{「:」、「/」},僅當其跟隨看起來像IP位址之內容時其才被視為分隔符號。此將處理IP位址與埠號碼(諸如,10.10.10.10/80或10.10.10.10:80)之一組合,此在事件中為普遍的。若此等字元包括於預設分隔符號集合中,則檔案名稱及URL將被分割為多個符記,其可為不準確的。將未修整之非分隔符號字元之任何鄰接字串視為符記。在一實施例中,剖析模組225出於效能之原因而使用有限狀態機(而非正規表達式)。
一般而言,可使用任何剖析器/符記化器以基於一組分隔符號及修整策略將字串分割為符記。可公開獲得之符記化器之一實例為java.util.StringTokenizer,其為Java標準程式庫之部分。StringTokenizer使用一或多個字元(例如,空白字元)之固定分隔符號字串以將字串分割為多個字串。此方法之問題為使用同一分隔符號(而不管上下文)之不靈活性。另一方法為使用已知正規表達式型樣之一清單及將字串之匹配部分識別為符記。此方法之問題為效能。
映射模組230自事件描述(例如,字串)提取經結構化之資料且將該資料儲存於(多個)適當之基本欄位中。映射模組類似於自事件描述提取特定值且使用該所提取之值填入正規化結構描述中之欄位的現存技術。儲存於基本欄位中之值可具有各種資料類型,諸如時間戳記、數字、網際網路協定(IP)位址或字串。應注意,一些資料可能不儲存於基本欄位中之任一者中。
雜湊模組235判定特定符記之雜湊值。此雜湊值指示應使用增強型經結構化之資料儲存器(ESDS)245中之哪一擴充欄位來儲存彼特定符記。根據一雜湊方案來判定該雜湊值。該雜湊方案基於符記之值而非符記之意義(其中該意義係基於在經結構化之資料儲存器中符記將通常對應之「欄」或「欄位」)來操作。符記之值作為字串而儲存於適當之擴充欄位中。
此雜湊方案之一實例為將來自符記(亦即,來自符記之值)之字元用作雜湊值。若字元為一字母,則符記可具有26個雜湊值中之任一者(字母表中之每一字母具有一個雜湊值,A至Z)。符記將接著儲存於26個擴充欄位中之一者中(字母表中之每一字母具有一個擴充欄位,A至Z)。若字元為數字,則符記可具有10個雜湊值中之任一者(每一數位具有一個雜湊值,0至9)。符記將接著儲存於10個擴充欄位中之一者中(每一數位具有一個擴充欄位,0至9)。若字元可為字母或數字,則符記可具有36個雜湊值中之任一者(字母表中之每一字母具有一個雜湊值(A至Z),以及每一數位具有一個雜湊值(0至9))。符記將接著儲存於36個擴充欄位中之一者中(字母表中之每一字母具有一個擴充欄位(A至Z),以及每一數位具有一個擴充欄位(0至9))。若字元可為除字母或數字之外的其他物(亦即,非文數字),則可使用一額外總括性雜湊值(「其他」)及擴充欄位(「其他」)。
用作雜湊值之字元可為(例如)符記之第一字元、符記之第二字元或符記之最後字元。若雜湊方案使用第二字元且符記為唯一之字元,則使用一特定字元(例如,空格「」字元)。
除如業已描述之使用來自符記自身之字元的雜湊方案之外,存在可使用之額外方法及改進。舉例而言,可基於符記之長度(亦即,字元之數目)來判定雜湊值(及因此適當之擴充欄位)。舉例而言,考慮將一符記之長度用作彼符記之雜湊值的雜湊方案。來自以下字串之符記:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
將具有以下雜湊值:
在此實例中,針對每一雜湊值(1、2、3等)呈現一個擴充欄位。該等符記將如下儲存於擴充欄位中:
將符記之長度用作彼符記之雜湊值的雜湊方案將使大多數符記叢集為小數目之擴充欄位。然而,若將符記之長度屬性與另一屬性(例如,來自符記之字元)組合,則雜湊方案之分佈特性將改良。舉例而言,考慮將符記之長度與來自符記之字元兩者用作彼符記之雜湊值的雜湊方案。來自以下字串之符記:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
將具有以下雜湊值,其中雜湊值之第一部分(亦即,在連字符之前)為長度,且雜湊值之第二部分(亦即,在連字符之後)為第一字元:
根據此雜湊方案,達到10個不同長度(1至9及對於所有高於9之長度而言的10)及36個不同字元(26個字母及10個數位)產生360個(10×36)可能之雜湊值:1-a、1-b、...、1-y、1-z、1-0、1-1、...、1-8、1-9、2-a、2-b、...、2-y、2-z、2-0、2-1、...、2-8、2-9、3-a等。
對於總共360個擴充欄位而言,針對每一雜湊值呈現一個擴充欄位。符記將如下儲存於擴充欄位中:(按次序省略不儲存任何符記之擴充欄位以節省空間。)
若認為360個相異雜湊值(及因此360個擴充欄位)太多,則可藉由(例如)減小長度「類別」之數目來減小該數目。僅使用5個長度類別(例如,長度1至2、長度3至4、長度5至6、長度7至8及長度9+)將產生總共180個相異雜湊值(及因此180個擴充欄位)(5×36)。舉例而言,來自以下字串之符記:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
將具有以下雜湊值,其中雜湊值之第一部分(亦即,在連字符之前)為長度類別(對於1至2而言為「1」、對於3至4而言為「2」,等等),且雜湊值之第二部分(亦即,在連字符之後)為第一字元:
符記將如下儲存於擴充欄位中:(按次序省略不儲存任何符記之擴充欄位以節省空間。)
用以減小相異雜湊值之數目(及因此擴充欄位之數目)的另一方式為減小字元「類別」之數目。僅使用27個字元類別(例如,A、B、...、Y、Z及對於所有10個數位而言之「數位」)將產生總共270個相異雜湊值(及因此270個擴充欄位)(10×27)。舉例而言,來自以下字串之符記:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
將具有以下雜湊值,其中雜湊值之第一部分(亦即,在連字符之前)為長度(1、2等),且雜湊值之第二部分(亦即,在連字符之後)為第一字元(特定字母或對於任何數位而言之「數位」):
符記將如下儲存於擴充欄位中:(按次序省略不儲存任何符記之擴充欄位以節省空間。)
僅使用5個長度類別及27個字元類別將產生總共135個相異雜湊值(及因此135個擴充欄位)(5×27)。舉例而言,來自以下字串之符記:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
將具有以下雜湊值,其中雜湊值之第一部分(亦即,在連字符之前)為長度類別(對於1至2而言為「1」,對於3至4而言為「2」,等),且雜湊值之第二部分(亦即,在連字符之後)為第一字元(特定字母或對於任何數位而言為「數位」):
符記將如下儲存於擴充欄位中:(按次序省略不儲存任何符記之擴充欄位以節省空間。)
亦可支援根據統一碼標準而編碼之字元。若使用16位元統一碼(Unicode)來編碼字元,則216
(65,536)個不同字元為可能的。一雜湊方案可藉由自符記選擇一(統一碼)字元且接著遮蔽該字元之某一部分來判定符記之雜湊值。舉例而言,可遮蔽一16位元統一碼字元之「最不感興趣」的8個位元(例如,通常由於以下原因而不改變的位元:a)在統一碼標準中無字元指派給其;或b)其通常未用於表示符記之(多種)語言中)。舉例而言,對於西方語言而言,低序位之8個位元將為感興趣之位元,因為其本質上將ASCII子集用作統一碼編碼之部分。
若使用256個擴充欄位來儲存含有16位元統一碼字元之符記,則每一擴充欄位可潛在地儲存具有多達256個不同「雜湊字元」之符記,其中一雜湊字元為判定哪一擴充欄位將儲存一符記之字元(亦即,雜湊值)。若實情為僅使用128個擴充欄位來儲存含有16位元統一碼字元之符記,則每一擴充欄位可潛在地儲存具有多達512個不同雜湊字元(雜湊值)之符記。即使512個不同雜湊值映射至一個擴充欄位,當執行檢索查詢時雜湊仍為有益的(只要符記分散相當均勻即可)。詳言之,應注意,在開始檢索之前消除127個其他擴充欄位而不加以考慮。換言之,使用將儲存符記之128(或256個)擴充欄位導致檢索查詢執行,其比僅使用將儲存符記之1個擴充欄位快約99倍。
統一碼實例-考慮以下統一碼位元型樣:
[0000 0000 0100 1011]
及「索引碼」(雜湊值):
[0100 1011]
在此實例中,其雜湊字元(亦即,雜湊值)為以[0100 1011]結尾之256個可能之統一碼字元中之一者的任何符記將儲存於欄[0100 1011]中。
可使用任何雜湊方案。不同雜湊方案將基於正儲存之資料之統計分佈而產生不同效能等級(例如,不同檢索速度)。在一實施例中,藉由典型資料分佈來測試不同雜湊方案。接著選擇產生最好效能之雜湊方案。
一般而言,用於特定情形之最好雜湊方案為將符記最均勻地分散於各種擴充欄位中的方案。擴充欄位之數目可取決於實施情況而為(例如)約10個至約幾百個欄位之間的任何數目。一般而言,當選擇雜湊方案時,觀念為首先決定多少擴充欄位為實際的。接著,選擇將資料(例如,符記)均勻地分散至各種擴充欄位中的雜湊方案。
額外考慮事項包括擴充欄位之一特定配置可達到、簡化或最佳化新檢索運算子之效能。下文結合查詢轉譯模組240來論述新檢索運算子及其相關聯之擴充欄位。
雜湊方案可導致多個符記映射至同一擴充欄位。若ESDS不支援多值欄位,則將儲存多個符記(與用以分離該等符記之分隔符號附加在一起)之單一值。若ESDS不支援多值欄位,則多個符記將作為多個獨立值而儲存於同一欄位中。在一實施例中,當多個符記映射至同一欄位時,其以排序次序儲存使得一遇到在語彙排列上較高之符記便可作出查詢項並非匹配之判定。
可使用停用字詞使得(例如)如「那隻」之符記並不綁定「T」欄位(假定雜湊方案將初始字元用作雜湊值)。另外,可組合此等觀念來應用已知之全文標索引技術,諸如在雜湊符記之前對符記執行詞幹截斷使得(例如)符記「嬰孩」及符記「嬰孩們」將產生同一雜湊值(且因此儲存於同一擴充欄位中)。
查詢轉譯模組240將遵照標準全文查詢語法之檢索查詢轉譯為遵照標準資料庫查詢語法(例如,經結構化之查詢語言或「SQL」)之檢索查詢。當使用者查詢增強型經結構化之資料儲存器(ESDS)245時,其可使用標準全文查詢語法。舉例而言,使用者可鍵入「狐狸」作為查詢。查詢轉譯模組240將基於正使用之雜湊方案而將「狐狸」轉譯為標準資料庫查詢語法(例如,SQL)。舉例而言,若雜湊方案將符記之第一字元用作符記之雜湊值,則「狐狸」將被轉譯為「where欄位F=「狐狸」」之SQL或「where欄位F含有「狐狸」」之SQL。若雜湊方案將符記之第二字元用作符記之雜湊值,則「狐狸」將被轉譯為「where欄位O=「狐狸」」之SQL或「where欄位F含有「狐狸」」之SQL。
明顯地支援檢索查詢中之布林邏輯。查詢轉譯模組240將布林邏輯轉譯為資料庫邏輯(例如,欄邏輯)。舉例而言,查詢「狐狸或狗」將被轉譯為「F=「狐狸」或D=「狗」」(假定雜湊方案將初始字元用作雜湊值)。作為另一實例,查詢「192.168.0.1登入失敗」將被轉譯為「arc_1 like「192.168.0.1」and arc_F like「失敗」and arc_L like「登入」」,其中以「arc_」開始之名稱表示ESDS 245內之全文欄名稱(例如,擴充欄位名字),且其中「like」為標準資料庫管理系統(DBMS)查詢(例如,SQL)內之子句類型。此實例對應於將符記之第一字元用作符記之雜湊值的雜湊方案。
可藉由以下步驟來支援諸如正規表達式之更複雜之正文操作(假定雜湊方案將初始字元用作雜湊值):使用由查詢提供之任何常值初始字元以消除不含有候選項(亦即,以彼等字元開始之符記)之結果列(事件),及接著進行至更為習知之正規表達式分析器中以檢查剩餘候選列。
若需要諸如字詞接近性或確切短語匹配(包括字詞序列/次序)之全文檢索特徵,則可以若干方式來實施該等特徵。最一般之方式為使用上述技術來縮減候選列(事件)且接著藉由擷取(被大大地減少的一組)候選列及正常地處理該等候選列來繼續進行傳統檢索。原始、未經處理之事件描述將可存取為額外欄中之值或在外部儲存至ESDS。若在外部儲存原始、未經處理之事件描述,則ESDS中之項目將需要以某種方式指示其與哪些事件描述相關聯(例如,藉由使用ESDS項目與相關聯之事件描述兩者相同的唯一識別符)。
在短語檢索中,多個符記之相對位置及同現為重要的。舉例而言,使用上述字串實例,針對短語「懶狗」之檢索應成功,而針對短語「狗懶」之檢索應失敗。用以實施短語檢索之一種方式為使用布林「及(AND)」運算子之語義來首先執行符記檢索。因此,針對「懶狗」之檢索及針對「狗懶」之檢索將產生相同結果(即,包括所有候選項(亦即,「狗」及「懶」)之事件(例如,列)之清單)。將接著擷取該等候選事件(列)。最後,所擷取之候選事件將經受針對精確所要短語(「懶狗」或「狗懶」)之檢索,藉此消除不匹配該短語之任何候選事件。
實務上,短語檢索之此實施為有效的,因為含有所有短語項之候選事件之清單個別地將通常為語料庫(corpus)(例如,儲存於ESDS中之所有事件)之一非常小的子集。又,第一步驟(初始小候選清單之產生)可利用欄儲存實施及欄檢索實施,下文結合ESDS之一例示性實施來論述該欄儲存實施及該欄檢索實施。然而,應注意,最後步驟(檢索事件以搜尋精確所要短語)不使用欄儲存器,因為候選事件業已被擷取。結果,最後步驟類似於蠻力檢索,但係在資料之業已最佳化之子集上的蠻力檢索。
或者,該等擴充欄位可直接支援短語檢索。將一字串剖析為符記,且每一個別符記儲存於擴充欄位中,如上文所描述。除此等「標準」符記外,額外符記亦儲存於擴充欄位中。舉例而言,出現於一字串中之每一符記對亦以短語次序儲存於一適當之擴充欄位中,且因此可用於檢索。在一實施例中,一符記對包括藉由一特殊字元(例如,底線字元「_」)而分離之第一符記及第二符記。該_字元指示該第一符記及該第二符記以彼次序出現於字串中且彼此鄰近。個別符記與符記對兩者可儲存於擴充欄位中。
下表展示擴充欄位及其儲存來自以下字串之符記對:
一隻敏捷的棕毛狐狸在3:40 am躍過那隻懶狗3次
假定雜湊方案將符記之第一字元用作雜湊值:(按次序省略不儲存任何符記之擴充欄位以節省空間。)
在此實例中,查詢轉譯模組240將使短語查詢(例如,「那隻懶狗」)轉譯為布林查詢(例如,「「那隻_懶」AND「懶_狗」」)。應注意,布林查詢係遵照標準全文查詢語法(正如短語查詢)。布林查詢自標準全文查詢語法轉譯為標準資料庫查詢語法將必須在可檢索ESDS之前發生。
亦應注意,僅因為一字串包括符記對那隻_懶及懶_狗,則此未必意謂該字串亦包括短語「那隻懶狗」。舉例而言,該字串可改為包括短語「那隻懶狗且一隻懶狗餓了」。然而,將需要在「蠻力」階段移除之此等誤判的數目與先前所描述之實施(其僅儲存個別符記且不儲存符記對)相比將通常小得多。關於是否儲存符記對之實施決策將取決於短語檢索特徵之重要性以及在額外複雜性及儲存過度耗用對完成僅儲存個別符記之較簡單實施中的取捨。
擴充欄位亦可直接支援「開始」及「結束」檢索。如上文結合短語檢索所提及,將一字串剖析為符記,且每一個別符記儲存於一擴充欄位中,如上文所描述。除此等「標準」(亦即,個別)符記外,額外符記亦儲存於擴充欄位中。此等額外符記使用特殊字元來指示關於標準符記之額外資訊,諸如標準符記是一字串(或在整個事件中)中之第一符記抑或一字串(或在整個事件中)中之最後符記。此等額外符記中之一者等於在第一特殊字元(例如,插入號字元「^」)之後的標準符記。^字元指示該符記為字串(或整個事件)內之第一符記。此等額外符記中之另一者等於在第二特殊字元(例如,美元字元「$」)之前的標準符記。$字元指示該符記為字串(或整個事件)內之最後符記。特殊字元是否用以指示字串中之第一/最後符記(例如,特定基本欄位中之值)對整個事件中之第一/最後符記為可組態的。在一實施例中,特殊字元^及$指示一符記為字串中之第一/最後符記及/或句子中之第一/最後符記(例如,若一字串含有多個句子,如由多個句號所指示)。
舉例而言,將字串「那隻敏捷的棕毛狐狸」剖析為四個符記(那隻、敏捷的、棕毛、狐狸),且每一符記將儲存於擴充欄位(「T」、「Q」、「B」、「F」)中(假定雜湊方案將初始字元用作雜湊值)。現在,除此等四個符記之外,以下符記亦將儲存於擴充欄位中:^那隻及狐狸$。符記^那隻將具有雜湊值「^」且儲存於「^」擴充欄位中。符記狐狸$將具有雜湊值「F」且儲存於「F」擴充欄位中。符記「^那隻」指示「那隻」為字串中之第一符記。符記「狐狸$」指示「狐狸」為字串中之最後符記。
通常,除儲存諸如符記對(對於短語檢索,使用_字元)、開始符記(對於開始檢索,使用^字元)或結束符記(對於結束檢索,使用$字元)之任何「檢索功能性」符記之外,每一個別符記將儲存於適當之擴充欄位中。若雜湊方案將第一字元用作雜湊值,則將僅在檢索係針對在字串開頭之符記(或若在句號之後的符記前面加上^字元,則針對在句子開頭之符記)時才檢查「^」擴充欄位。
使用各種特殊字元之此等額外符記使得查詢轉譯模組240能夠轉譯新類型之查詢。舉例而言,查詢「以「那隻」開始」將被轉譯為「^那隻」。查詢「以「狐狸」結束」將被轉譯為「狐狸$」。短語「登入失敗」將被轉譯為「失敗_登入」。短語「敏捷的棕毛狐狸」將被轉譯為「「敏捷的_棕毛」及「棕毛_狐狸」」。
儲存器210儲存增強型經結構化之資料儲存器(ESDS)245。返回至在上述實例部分中所給出之實例,傳統經結構化之資料儲存器可僅使用4個基本欄位來儲存事件:時間戳記欄位、計數欄位、偶然事件描述欄位及錯誤描述欄位。ESDS可使用40個欄位來儲存同一事件:相同的4個基本欄位及36個擴充欄位。ESDS之結構與傳統經結構化之資料儲存器之結構類似之處在於,其皆使用列及欄來組織資料。然而,ESDS支援對未經結構化之資料的較快速檢索,因為符記儲存於擴充欄位中。ESDS可為(例如)關係資料庫或試算表。下文描述ESDS之一例示性實施。
資料儲存器管理系統215包括多個模組,諸如添加資料模組250及查詢資料模組255。添加資料模組250將資料添加至ESDS 245。具體言之,添加資料模組接收呈ESDS格式(例如,包括基本欄位與擴充欄位兩者)之事件資訊,且將彼事件資訊插入至ESDS中。添加資料模組250類似於與傳統經結構化之資料儲存器一起提供之標準工具,而不管資料儲存器是關係資料庫抑或試算表。
查詢資料模組255對ESDS 245執行查詢。具體言之,查詢資料模組接收遵照標準資料庫查詢語法(例如,SQL)之查詢且對ESDS執行彼查詢。查詢資料模組255為與傳統經結構化之資料儲存器一起提供之標準工具,而不管資料儲存器是關係資料庫抑或試算表。
圖3為根據本發明之一實施例的用於將事件資訊儲存於增強型經結構化之資料儲存器中之方法的流程圖。在步驟310中,接收一事件字串。舉例而言,控制模組220接收將被添加至ESDS 245之事件字串。
在步驟320中,產生呈「ESDS格式」之空事件。舉例而言,控制模組220產生呈ESDS格式之空「列」。「ESDS格式」指代一組基本欄位及擴充欄位,如上文所描述。由雜湊方案來判定所使用之擴充欄位之確切數目及其識別碼。
在步驟330中,將事件字串剖析為符記。舉例而言,控制模組220使用剖析模組225以基於分隔符號將事件字串剖析為符記。
應注意,可以任一次序執行步驟320及330。
在步驟340中,基於符記之意義及ESDS 245之結構描述將一或多個符記映射至一或多個適當之基本欄位。舉例而言,控制模組220使用映射模組230來判定一特定符記應映射至哪一基本欄位。接著將適當之值(例如,符記值或自符記值導出之值)儲存於ESDS格式事件(在步驟320中產生)之基本欄位中。
在步驟350中,識別事件字串之需要標以索引(亦即,達到較快速全文檢索)之一部分。基於符記之值及雜湊方案將彼部分內之一或多個符記映射至一或多個適當之擴充欄位。舉例而言,控制模組220使用雜湊模組235來判定特定符記之雜湊值。接著將符記值儲存於ESDS格式事件(在步驟320中產生)之適當之擴充欄位中。
應注意,可以任一次序執行步驟340及350。
在步驟360中,將ESDS格式事件資訊儲存於增強型經結構化之資料儲存器(ESDS)245中。舉例而言,控制模組220使用添加資料模組250以將ESDS格式事件資訊添加至ESDS 245。
當步驟360完成時,所接收之事件字串已以ESDS格式而添加至ESDS 245。現可使用較快速全文檢索來檢索事件資訊。具體言之,現可使用較快速全文檢索來檢索儲存於ESDS之擴充欄位中的事件資訊。
圖4為根據本發明之一實施例的用於對儲存於增強型經結構化之資料儲存器中之事件資訊執行全文檢索的方法的流程圖。當方法400開始時,事件資訊業已以ESDS格式而儲存於ESDS 254中,如上文所解釋。
在步驟410中,接收遵照標準全文查詢語法之查詢。舉例而言,控制模組220接收將在ESDS 245上執行之遵照標準全文查詢語法之查詢。
在步驟420中,將遵照標準全文查詢語法之查詢轉譯為遵照標準資料庫查詢語法之查詢。舉例而言,控制模組220使用查詢轉譯模組240以將遵照標準全文查詢語法之查詢轉譯為遵照標準資料庫查詢語法之查詢。
在步驟430中,在ESDS 245上執行遵照標準資料庫查詢語法之查詢。舉例而言,控制模組220使用查詢資料模組255以在ESDS 245上執行遵照標準資料庫查詢語法之查詢。
在步驟440中,傳回查詢結果。舉例而言,控制模組220接收來自查詢資料模組255之查詢結果且傳回彼等結果。
上文所描述之技術(例如,基於符記之值及雜湊方案而將符記儲存於擴充欄位中)可與任何經結構化之資料儲存器一起使用。舉例而言,該技術可與基於列之DBMS一起使用,該基於列之DBMS描述於在2007年12月28日申請之題為「Storing Log Data Efficiently While Supporting Querying to Assist in Computer Network Security」的美國專利申請案第11/966,078號中。
該技術特別適合於基於欄之DBMS,諸如描述於2009年9月4日申請之題為「Storing Log Data Efficiently While Supporting Querying」之美國專利申請案第12/554,541號(「'541申請案」)中的基於欄之DBMS及/或基於列及欄之DBMS。基於欄之DBMS為有利的,因為該技術將查詢縮減至必須含有給定檢索項之特定欄(擴充欄位)(即使終端使用者根本未指定欄)。無需檢查(或甚至載入)列之其他欄位以便判定結果。
'541申請案描述僅使用基於欄之區塊(chunk)或基於欄之區塊及基於列之區塊之一組合來儲存事件的記錄系統。基於欄之區塊表示多個事件中之一欄位(欄)的一組值。若該欄為上文所描述之擴充欄中之一者,則由基於欄之區塊所表示之值將為映射至一特定欄之符記(來自各種事件)。舉例而言,與「A」欄相關聯之基於欄之區塊將表示以字母「A」開始之符記(假定雜湊方案將初始字元用作雜湊值)。
用以實施基於欄之區塊之一種方式為列出由區塊所表示之每一符記(例如,各種事件中所含有之以字母「A」開始的每一符記)。可基於符記之相關聯之事件(例如,基於每一事件之唯一識別符)來排定符記之次序。
相同之基於欄之區塊內的所有符記將基於所使用之雜湊方案而共用某一特性。舉例而言,若雜湊方案將初始字元用作雜湊值,則所有符記將共用同一初始字元。除此類似性之外,符記值之統計分佈可變化。
若基於欄之區塊之符記值的統計分佈藉由低基數(較少之相異符記值)及高序數(具有相同值之符記之較多重複例項)而特徵化,則可以最佳化(壓縮)之方式來實施基於欄之區塊。在一實施例中,使用一字典、一或多個向量及一或多個計數來實施基於欄之區塊。
字典為彼區塊中所含有之唯一符記值之一清單。可以排序次序來列出符記值使得一遇到在語彙排列上較高之符記便可作出查詢項並非匹配之判定。針對每一字典項目包括一向量且該向量列出含有字典項目符記之每一事件的唯一識別符。針對每一字典項目包括一計數且該計數指示含有字典項目符記之事件之數目(其亦等於向量中之項目之數目)。該計數為有用的,因為當執行檢索時一較低計數意謂相關聯之符記值更有差別(更有用)。若符記值之統計分佈具有低基數及高序數,則相關聯之基於欄之區塊將具有較少之字典項目及較高之計數。
舉例而言,考慮ESDS中之「C」擴充欄,其中雜湊方案將第一字元用作雜湊值。在表1中,題為「符記」之欄表示「C」擴充欄。用於事件(來自該事件之符記經剖析)之唯一識別符鄰近於每一符記。
可使用一字典、四個計數及四個向量以一最佳化(壓縮)之方式來實施此「C」擴充欄之基於欄之區塊。字典項目將為{能夠、帽子、貓、切割}。每一字典項目之計數及向量將為:
一些符記很少跨越事件而重複其自身,此使得難以按壓縮之方式來實施基於欄之區塊。舉例而言,考慮含有表示由使用者訪問之網站的統一資源定位符(URL)的事件。若彼網站很少被訪問(由同一使用者或其他使用者),則在基於欄之區塊內將很少重複該URL。在一實施例中,為解決此情形,不將URL作為一單一符記來儲存。實情為,基於分隔符號將URL剖析為多個符記。舉例而言,將URL「http://www.yahoo.com/weather?95014
」剖析為6個符記:「http」、「www」、「yahoo」、「com」、「weather」及「95014」。「http」符記、「www」符記及「com」符記將跨越事件而頻繁地重複其自身,從而使得容易以壓縮之方式儲存該等符記。「yahoo」符記亦將重複其自身,但頻率較低。「weather」符記及「95014」符記將最不頻繁地重複其自身。
在說明書中參考「一實施例」意謂結合實施例所描述之特定特徵、結構或特性包括於本發明之至少一實施例中。在說明書中之各種位置中之短語「在一實施例中」或「一較佳實施例」的出現未必皆指代同一實施例。
依據對電腦記憶體內資料位元之操作之方法及符號表示而呈現以上描述的一些部分。此等描述及表示為熟習此項技術者用以向其他熟習此項技術者最有效地傳達其工作之要點的手段。在此且大體而言設想一種方法為導致一所要結果之步驟(指令)之自相一致序列。該等步驟為要求實體操縱物理量之彼等步驟。通常,雖然不必要,但此等物理量採用能夠被儲存、轉移、組合、比較及以其他方式操縱之電信號、磁信號或光信號之形式。主要因為常見用途,將此等信號稱為位元、值、元件、符號、字元、術語、數字或其類似者有時為便利的。此外,在不失一般性之情況下,將要求實體操縱物理量之步驟的特定配置稱為模組或程式碼器件有時亦為便利的。
然而,應記住,所有此等及類似術語與適當物理量相關聯,且僅為應用於此等量之便利標籤。除非另外特別陳述,否則如自前文論述顯而易見,應瞭解,貫穿該描述,利用諸如「處理」或「計算」或「推算」或「判定」或「顯示」或「判定」或其類似者之術語的論述指代電腦系統或類似電子計算器件之動作及程序,該等電腦系統或類似電子計算器件操縱及變換表示為電腦系統記憶體或暫存器或其他此類資訊儲存器、傳輸或顯示器件內的物理(電子)量。
本發明之特定態樣包括本文中以方法之形式描述之程序步驟及指令。應注意,可以軟體、韌體或硬體體現本發明之程序步驟及指令,且當以軟體體現時,可下載該等程序步驟及指令以將其駐留於多種作業系統所使用之不同平台上且由該等不同平台進行操作。
本發明亦係關於用於執行本文中之操作之裝置。此裝置可經特殊建構以用於所需目的,或其可包含由儲存於電腦中之電腦程式選擇性地啟動或重新組態之通用電腦。此電腦程式可儲存於電腦可讀儲存媒體中,諸如(但不限於)任何類型之磁碟(包括軟性磁碟)、光碟、CD-ROM、磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁卡或光卡、特殊應用積體電路(ASIC)或適於儲存電子指令之任何類型之媒體,且該等媒體各自耦接至電腦系統匯流排。此外,本說明書中所參考之電腦可包括單一處理器或可為使用多個處理器設計之架構以用於增加之計算能力。
本文中所呈現之方法及顯示器並不固有地與任何特定電腦或其他裝置相關聯。各種通用系統亦可根據本文中之教示而與程式一起使用,或其可證明建構更特殊化裝置以執行所需方法步驟為便利的。自以上描述將顯而易見多種此等系統所需之結構。另外,並未參考任何特定程式設計語言來描述本發明。應瞭解,可使用多種程式設計語言來實施如本文中所描述之本發明之教示,且提供以上對於特定語言之任何參考以揭示本發明之實現及最佳模式。
雖然已參考較佳實施例及若干替代實施例特定地展示及描述了本發明,但熟習相關技術者將理解,可在不脫離本發明之精神及範疇的情況下於本文中作出形式及細節上之各種改變。
最後,應注意,主要出於易讀性及指令性目的而選擇本說明書中所使用之語言,且該語言可能並非經選擇以劃定或限制本發明之主題。因此,本發明之揭示內容意欲說明而非限制本發明之範疇。
200...系統
205...全文檢索系統
210...儲存器
215...資料儲存器管理系統
220...控制模組
225...剖析模組
230...映射模組
235...雜湊模組
240...查詢轉譯模組
245...增強型經結構化之資料儲存器
250...添加資料模組
255...查詢資料模組
400...用於對儲存於增強型經結構化之資料儲存器中之事件資訊執行全文檢索的方法
圖1展示根據本發明之一實施例的一事件描述之一實例及如何可在一增強型經結構化之資料儲存器中表示彼事件描述;
圖2為根據本發明之一實施例之系統的方塊圖,該系統使用一增強型經結構化之資料儲存器達到較快速全文檢索;
圖3為根據本發明之一實施例的用於將事件資訊儲存於一增強型經結構化之資料儲存器中之方法的流程圖;及
圖4為根據本發明之一實施例的用於對儲存於一增強型經結構化之資料儲存器中之事件資訊執行全文檢索的方法的流程圖。
(無元件符號說明)
Claims (13)
- 一種用於將資訊儲存於一經結構化之資料儲存器內之一項目中的電腦實施方法,其中該項目包括一或多個基本欄位及一或多個擴充欄位,該方法包含:接收一字串;自該字串提取資訊;基於該所提取之資訊之意義將該所提取之資訊儲存於該項目之該一或多個基本欄位中;識別該字串之待達到較快速檢索的一部分;將該字串之該所識別之部分剖析為複數個符記;及對於該複數個符記中之每一符記,進行以下操作:基於一雜湊方案來判定該符記之一雜湊值;及將該符記儲存於對應於該所判定之雜湊值的一擴充欄位中。
- 如請求項1之方法,其中該字串之該所識別之部分包含該整個字串。
- 如請求項1之方法,其中該字串之該所識別之部分為一儲存於一基本欄位中之值。
- 如請求項1之方法,其中該符記之該雜湊值包含一字元。
- 如請求項1之方法,其中該雜湊方案包含將該符記之第一字元用作該符記之雜湊值。
- 如請求項1之方法,其中該符記之該雜湊值包含一數字。
- 如請求項1之方法,其中該雜湊方案包含將該符記內之字元之數目用作該符記之雜湊值。
- 如請求項1之方法,其中該雜湊方案包含將該符記之該第一字元與該符記內之字元之數目兩者用作該符記之雜湊值。
- 如請求項1之方法,其進一步包含:對於該複數個符記中之每一符記,進行以下操作:產生一符記對,該符記對包含該符記及在該字串之該所識別之部分內緊接在該符記之後的一第二符記;基於一雜湊方案來判定該符記對之一雜湊值;及將該符記對儲存於對應於該所判定之雜湊值的一擴充欄位中。
- 如請求項1之方法,其進一步包含:對於該複數個符記中之每一符記,進行以下操作:若該符記為該字串之該所識別之部分內的第一符記,則進行以下操作:產生包含一特殊字元及該符記之一開始符記,其中該特殊字元指示該符記為該字串之該所識別之部分內的該第一符記;基於一雜湊方案來判定該開始符記之一雜湊值;及將該開始符記儲存於對應於該所判定之雜湊值的一擴充欄位中。
- 如請求項1之方法,其進一步包含:對於該複數個符記中之每一符記,進行以下操作:若該符記為該字串之該所識別之部分內的最後符記,則進行以下操作:產生包含該符記及一特殊字元之一結束符記,其中該特殊字元指示該符記為該字串之該所識別之部分內的該最後符記;基於一雜湊方案來判定該結束符記之一雜湊值;及將該結束符記儲存於對應於該所判定之雜湊值的一擴充欄位中。
- 一種用於將資訊儲存於一經結構化之資料儲存器內之一項目中的電腦程式產品,其中該項目包括一或多個基本欄位及一或多個擴充欄位,且其中該電腦程式產品儲存於包括指令之一電腦可讀媒體上,當載入至記憶體中時,該等指令使一處理器執行一方法,該方法包含:接收一字串;自該字串提取資訊;基於該所提取之資訊之意義將該所提取之資訊儲存於該項目之該一或多個基本欄位中;識別該字串之待達到較快速檢索的一部分;將該字串之該所識別之部分剖析為複數個符記;及對於該複數個符記中之每一符記,進行以下操作:基於一雜湊方案來判定該符記之一雜湊值;及將該符記儲存於對應於該所判定之雜湊值的一擴充欄位中。
- 一種用於將資訊儲存於一經結構化之資料儲存器內之一項目中的系統,其中該項目包括一或多個基本欄位及一或多個擴充欄位,該系統包含:包括指令之一電腦可讀媒體,當載入至記憶體中時,該等指令使一處理器執行一方法,該方法包含:接收一字串;自該字串提取資訊;基於該所提取之資訊之意義將該所提取之資訊儲存於該項目之該一或多個基本欄位中;識別該字串之待達到較快速檢索的一部分;將該字串之該所識別之部分剖析為複數個符記;及對於該複數個符記中之每一符記,進行以下操作:基於一雜湊方案來判定該符記之一雜湊值;及將該符記儲存於對應於該所判定之雜湊值的一擴充欄位中;及一處理器,其用於執行該方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25947909P | 2009-11-09 | 2009-11-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201131402A TW201131402A (en) | 2011-09-16 |
TWI480746B true TWI480746B (zh) | 2015-04-11 |
Family
ID=43970422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099138570A TWI480746B (zh) | 2009-11-09 | 2010-11-09 | 使用經結構化之資料儲存器達到較快速全文檢索 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110113048A1 (zh) |
EP (1) | EP2499562A4 (zh) |
CN (1) | CN102834802A (zh) |
TW (1) | TWI480746B (zh) |
WO (1) | WO2011057259A1 (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195657B2 (en) * | 2010-03-08 | 2015-11-24 | Microsoft Technology Licensing, Llc | Columnar storage of a database index |
US9002830B2 (en) * | 2010-07-12 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Determining reliability of electronic documents associated with events |
US20130007606A1 (en) * | 2011-06-30 | 2013-01-03 | Nokia Corporation | Text deletion |
US8983920B2 (en) | 2011-08-30 | 2015-03-17 | Open Text S.A. | System and method of quality assessment of a search index |
US8903831B2 (en) | 2011-09-29 | 2014-12-02 | International Business Machines Corporation | Rejecting rows when scanning a collision chain |
CN103246664B (zh) * | 2012-02-07 | 2016-05-25 | 阿里巴巴集团控股有限公司 | 网页检索方法和装置 |
TWI578175B (zh) * | 2012-12-31 | 2017-04-11 | 威盛電子股份有限公司 | 檢索方法、檢索系統以及自然語言理解系統 |
US9405794B2 (en) * | 2013-07-17 | 2016-08-02 | Thoughtspot, Inc. | Information retrieval system |
US20150026153A1 (en) | 2013-07-17 | 2015-01-22 | Thoughtspot, Inc. | Search engine for information retrieval system |
US9405652B2 (en) * | 2013-10-31 | 2016-08-02 | Red Hat, Inc. | Regular expression support in instrumentation languages using kernel-mode executable code |
US9348870B2 (en) | 2014-02-06 | 2016-05-24 | International Business Machines Corporation | Searching content managed by a search engine using relational database type queries |
US9910931B2 (en) * | 2014-03-19 | 2018-03-06 | ZenDesk, Inc. | Suggestive input systems, methods and applications for data rule creation |
CN105302827B (zh) * | 2014-06-30 | 2018-11-20 | 华为技术有限公司 | 一种事件的搜索方法和设备 |
US10216846B2 (en) * | 2014-10-22 | 2019-02-26 | Thomson Reuters (Grc) Llc | Combinatorial business intelligence |
US10366068B2 (en) | 2014-12-18 | 2019-07-30 | International Business Machines Corporation | Optimization of metadata via lossy compression |
JP6459669B2 (ja) * | 2015-03-17 | 2019-01-30 | 日本電気株式会社 | カラムストア型データベース管理システム |
CN106610995B (zh) * | 2015-10-23 | 2020-07-07 | 华为技术有限公司 | 一种创建密文索引的方法、装置及系统 |
US10169434B1 (en) * | 2016-01-31 | 2019-01-01 | Splunk Inc. | Tokenized HTTP event collector |
US10534791B1 (en) | 2016-01-31 | 2020-01-14 | Splunk Inc. | Analysis of tokenized HTTP event collector |
US10649991B2 (en) | 2016-04-26 | 2020-05-12 | International Business Machines Corporation | Pruning of columns in synopsis tables |
US11200217B2 (en) * | 2016-05-26 | 2021-12-14 | Perfect Search Corporation | Structured document indexing and searching |
US11093476B1 (en) | 2016-09-26 | 2021-08-17 | Splunk Inc. | HTTP events with custom fields |
DE102016224455A1 (de) * | 2016-12-08 | 2018-06-14 | Bundesdruckerei Gmbh | Datenbankindex aus mehreren Feldern |
TWI632474B (zh) * | 2017-01-06 | 2018-08-11 | 中國鋼鐵股份有限公司 | 存取資料庫的方法 |
CN106919675B (zh) * | 2017-02-24 | 2019-12-20 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
US11734286B2 (en) | 2017-10-10 | 2023-08-22 | Thoughtspot, Inc. | Automatic database insight analysis |
US20190179948A1 (en) * | 2017-12-12 | 2019-06-13 | International Business Machines Corporation | Storing unstructured data in a structured framework |
US11157564B2 (en) | 2018-03-02 | 2021-10-26 | Thoughtspot, Inc. | Natural language question answering systems |
EP3550444B1 (en) | 2018-04-02 | 2023-12-27 | Thoughtspot Inc. | Query generation based on a logical data model |
US11023486B2 (en) | 2018-11-13 | 2021-06-01 | Thoughtspot, Inc. | Low-latency predictive database analysis |
US11580147B2 (en) | 2018-11-13 | 2023-02-14 | Thoughtspot, Inc. | Conversational database analysis |
US11544239B2 (en) | 2018-11-13 | 2023-01-03 | Thoughtspot, Inc. | Low-latency database analysis using external data sources |
US11416477B2 (en) | 2018-11-14 | 2022-08-16 | Thoughtspot, Inc. | Systems and methods for database analysis |
US11334548B2 (en) | 2019-01-31 | 2022-05-17 | Thoughtspot, Inc. | Index sharding |
US11928114B2 (en) | 2019-04-23 | 2024-03-12 | Thoughtspot, Inc. | Query generation based on a logical data model with one-to-one joins |
US11442932B2 (en) | 2019-07-16 | 2022-09-13 | Thoughtspot, Inc. | Mapping natural language to queries using a query grammar |
US11354326B2 (en) | 2019-07-29 | 2022-06-07 | Thoughtspot, Inc. | Object indexing |
US11586620B2 (en) | 2019-07-29 | 2023-02-21 | Thoughtspot, Inc. | Object scriptability |
US10970319B2 (en) | 2019-07-29 | 2021-04-06 | Thoughtspot, Inc. | Phrase indexing |
US11200227B1 (en) | 2019-07-31 | 2021-12-14 | Thoughtspot, Inc. | Lossless switching between search grammars |
US11409744B2 (en) | 2019-08-01 | 2022-08-09 | Thoughtspot, Inc. | Query generation based on merger of subqueries |
US11544272B2 (en) | 2020-04-09 | 2023-01-03 | Thoughtspot, Inc. | Phrase translation for a low-latency database analysis system |
US11379495B2 (en) | 2020-05-20 | 2022-07-05 | Thoughtspot, Inc. | Search guidance |
US11663199B1 (en) | 2020-06-23 | 2023-05-30 | Amazon Technologies, Inc. | Application development based on stored data |
US11768818B1 (en) | 2020-09-30 | 2023-09-26 | Amazon Technologies, Inc. | Usage driven indexing in a spreadsheet based data store |
US11514236B1 (en) | 2020-09-30 | 2022-11-29 | Amazon Technologies, Inc. | Indexing in a spreadsheet based data store using hybrid datatypes |
US11500839B1 (en) | 2020-09-30 | 2022-11-15 | Amazon Technologies, Inc. | Multi-table indexing in a spreadsheet based data store |
US11429629B1 (en) * | 2020-09-30 | 2022-08-30 | Amazon Technologies, Inc. | Data driven indexing in a spreadsheet based data store |
US11520782B2 (en) * | 2020-10-13 | 2022-12-06 | Oracle International Corporation | Techniques for utilizing patterns and logical entities |
US11714796B1 (en) | 2020-11-05 | 2023-08-01 | Amazon Technologies, Inc | Data recalculation and liveliness in applications |
CN112988668B (zh) * | 2021-03-26 | 2022-10-14 | 瀚高基础软件股份有限公司 | 基于PostgreSQL的流式文档处理方法、装置以及装置的应用方法 |
CN112883249B (zh) * | 2021-03-26 | 2022-10-14 | 瀚高基础软件股份有限公司 | 版式文档处理方法、装置以及装置的应用方法 |
US11580111B2 (en) | 2021-04-06 | 2023-02-14 | Thoughtspot, Inc. | Distributed pseudo-random subset generation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233224A1 (en) * | 2001-08-14 | 2003-12-18 | Insightful Corporation | Method and system for enhanced data searching |
US20050198070A1 (en) * | 2004-03-08 | 2005-09-08 | Marpex Inc. | Method and system for compression indexing and efficient proximity search of text data |
US20070112714A1 (en) * | 2002-02-01 | 2007-05-17 | John Fairweather | System and method for managing knowledge |
US20070294235A1 (en) * | 2006-03-03 | 2007-12-20 | Perfect Search Corporation | Hashed indexing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622144B1 (en) * | 2000-08-28 | 2003-09-16 | Ncr Corporation | Methods and database for extending columns in a record |
US6980976B2 (en) * | 2001-08-13 | 2005-12-27 | Oracle International Corp. | Combined database index of unstructured and structured columns |
US20060287920A1 (en) * | 2005-06-01 | 2006-12-21 | Carl Perkins | Method and system for contextual advertisement delivery |
US20080147642A1 (en) * | 2006-12-14 | 2008-06-19 | Dean Leffingwell | System for discovering data artifacts in an on-line data object |
US9166989B2 (en) * | 2006-12-28 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Storing log data efficiently while supporting querying |
SG177213A1 (en) * | 2006-12-28 | 2012-01-30 | Arcsight Inc | Storing log data efficiently while supporting querying to assist in computer network security |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US8275842B2 (en) * | 2007-09-30 | 2012-09-25 | Symantec Operating Corporation | System and method for detecting content similarity within email documents by sparse subset hashing |
-
2010
- 2010-11-09 CN CN2010800609594A patent/CN102834802A/zh active Pending
- 2010-11-09 EP EP10829280.6A patent/EP2499562A4/en not_active Ceased
- 2010-11-09 WO PCT/US2010/056015 patent/WO2011057259A1/en active Application Filing
- 2010-11-09 US US12/942,890 patent/US20110113048A1/en not_active Abandoned
- 2010-11-09 TW TW099138570A patent/TWI480746B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233224A1 (en) * | 2001-08-14 | 2003-12-18 | Insightful Corporation | Method and system for enhanced data searching |
US20070112714A1 (en) * | 2002-02-01 | 2007-05-17 | John Fairweather | System and method for managing knowledge |
US20050198070A1 (en) * | 2004-03-08 | 2005-09-08 | Marpex Inc. | Method and system for compression indexing and efficient proximity search of text data |
US20070294235A1 (en) * | 2006-03-03 | 2007-12-20 | Perfect Search Corporation | Hashed indexing |
Also Published As
Publication number | Publication date |
---|---|
EP2499562A4 (en) | 2016-06-01 |
EP2499562A1 (en) | 2012-09-19 |
CN102834802A (zh) | 2012-12-19 |
TW201131402A (en) | 2011-09-16 |
WO2011057259A1 (en) | 2011-05-12 |
US20110113048A1 (en) | 2011-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI480746B (zh) | 使用經結構化之資料儲存器達到較快速全文檢索 | |
US7031910B2 (en) | Method and system for encoding and accessing linguistic frequency data | |
Navarro | Spaces, trees, and colors: The algorithmic landscape of document retrieval on sequences | |
US8473501B2 (en) | Methods, computer systems, software and storage media for handling many data elements for search and annotation | |
US6470347B1 (en) | Method, system, program, and data structure for a dense array storing character strings | |
CN102142038B (zh) | 用于记号空间资料库的多级查询处理系统与方法 | |
Cafarella et al. | Web-scale extraction of structured data | |
US20060031207A1 (en) | Content search in complex language, such as Japanese | |
EP1910948A2 (en) | Processor for fast phrase searching | |
CN105843960B (zh) | 基于语义树的索引方法和系统 | |
US6430557B1 (en) | Identifying a group of words using modified query words obtained from successive suffix relationships | |
CN109885641B (zh) | 一种数据库中文全文检索的方法及系统 | |
CN115186050B (zh) | 基于自然语言处理的选题推荐方法、系统及相关设备 | |
KR100835706B1 (ko) | 자동 색인을 위한 한국어 형태소 분석 시스템 및 그 방법 | |
CN106503195A (zh) | 一种基于搜索引擎的翻译词库检索方法及系统 | |
US20090055358A1 (en) | Efficient processing of mapped boolean queries via generative indexing | |
Chang et al. | Applying pattern mining to Web information extraction | |
US20220121637A1 (en) | Structured document indexing and searching | |
US8682900B2 (en) | System, method and computer program product for documents retrieval | |
CN103064847A (zh) | 索引装置、索引方法、检索装置、检索方法和检索系统 | |
JP2008541272A (ja) | 署名生成および関連性を有するマッチングエンジン | |
CN103116607B (zh) | 一种新的基于汉语拼音的全文检索系统 | |
Liu et al. | Efficient keyword search in fuzzy XML | |
Oflazer | Error-tolerant retrieval of trees | |
Chiang et al. | Extracting functional annotations of proteins based on hybrid text mining approaches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |