基于區間的模糊數據庫搜索的制作方法
【技術領域】
[0001]本發明涉及基于區間(interval)的模糊數據庫搜索。
【背景技術】
[0002]數據庫是被創建以存儲、檢索和管理大量信息的容器。數據庫能夠根據在數據庫之內實現相關數據結構的模式(schema)來存儲信息。所述模式可以從反映將被存儲在數據庫中的信息的結構的數據庫模型進行創建。
[0003]隨著更多的信息被添加到數據庫,該數據庫的大小增加。這可能導致性能問題,特別是試圖在數據庫中找出(locate)數據的時候。通常,數據庫搜索是由數據庫管理系統來執行的。數據庫管理系統接收包含搜索參數的搜索請求并根據該搜索參數在該數據庫中搜索條目。依賴于數據庫的大小,客戶可以體驗到提交搜索請求和收到結果之間的延遲。隨著數據庫的增大,延遲也會增加,有時會成指數增加。
[0004]除了數據庫的大小之外,所述延遲還可能由于搜索請求的復雜度而增加。例如,關于值范圍的搜索請求可能引起額外的延遲,因為必須在數據庫中檢查整個范圍。類似地,復雜的搜索查詢需要額外的處理時間。例如,包括諸如“and(和)”和“or(或)”的條件語句的搜索請求花費更多的處理時間,因為每個條件參數都必須被檢查。在諸如商業環境的某些場景中,由于這些延遲的長度,搜索數據庫可能令人不快地緩慢。
【發明內容】
[0005]在一個實施例中,一種計算機實現的方法通過處理器接收關于搜索數據庫的請求,該請求包括標識第一值范圍的第一搜索參數。然后,該方法通過所述處理器響應于該請求生成至少一個搜索哈希值,其中每個搜索哈希值代表包含值的區間,每個區間不重疊。然后,該方法通過所述處理器搜索數據庫以識別如下數據庫條目:在該數據庫條目的參考字段中包含所述至少一個搜索哈希值中的搜索哈希值。然后,該方法通過所述處理器返回識別出的數據庫條目。
[0006]在另一實施例中,一種非暫態計算機可讀存儲介質存儲一個或多個程序,該程序包括用于執行如下操作的指令:接收關于搜索數據庫的請求,該請求包括標識第一值范圍的第一搜索參數;響應于該請求,生成至少一個搜索哈希值,其中每個搜索哈希值代表包含值的區間,每個區間不重疊;搜索數據庫以識別如下數據庫條目:在該數據庫條目的參考字段中包含所述至少一個搜索哈希值中的搜索哈希值;以及返回識別出的數據庫條目。
[0007]在另一實施例中,一種計算機實現的系統包括:一個或多個計算機處理器和非暫態計算機可讀存儲介質。該非暫態計算機可讀存儲介質包括指令,當該指令被執行時,控制以將所述一個或多個計算機處理器配置用于:接收關于搜索數據庫的請求,該請求包括標識第一值范圍的第一搜索參數;響應于該請求,生成至少一個搜索哈希值,其中每個搜索哈希值代表包含值的區間,每個區間不重疊;搜索數據庫以識別如下數據庫條目:在該數據庫條目的參考字段中包含所述至少一個搜索哈希值中的搜索哈希值;以及返回識別出的數據庫條目。
[0008]以下的詳細描述和附圖提供了對本公開的本質和優點更好的理解。
【附圖說明】
[0009]圖1示出根據一個實施例的系統;
[0010]圖2示出根據一個實施例的、生成哈希值的技術;
[0011]圖3示出根據一個實施例的、從基于時間的搜索參數到哈希值的轉換;
[0012]圖4a示出根據一個實施例的、包括條件邏輯的基于時間的搜索請求的轉換;
[0013]圖4b示出根據實施例的、另一包括條件邏輯的基于時間的搜索請求的轉換;
[0014]圖5示出根據一個實施例的、提供數據庫的搜索的處理流程;以及
[0015]圖6示出根據一個實施例的示例性計算機系統。
【具體實施方式】
[0016]在以下描述中,為了解釋的目的,闡述許多示例和具體細節以便提供對本公開的充分理解。然而,對于本領域技術人員,將明顯的是,如權利要求所表述的本公開可以僅僅包括這些示例中的一些或全部特征或者上述特征與下面描述的其它特征的組合,并且還可以包括此處所描述的特征和概念的修改和等同物。
[0017]此處所描述的各種實施例提供了如下搜索技術:其能夠由數據庫管理系統來執行以便快速地找出滿足搜索請求的數據庫條目。所描述的搜索技術能夠證明對于包含條件語句的復雜搜索查詢特別有用。該搜索技術可以包括預處理數據庫以向數據庫條目添加參考哈希值。該參考哈希值可以通過修改數據庫模式以更新現有字段或者添加用于存儲參考哈希值的新的字段,被添加到數據庫條目。存儲參考哈希值的數據庫條目的字段可以被稱為參考哈希字段。
[0018]一旦數據庫已被預處理,該搜索技術就能夠接收包含搜索參數的搜索請求。該搜索參數能夠指定:值、值范圍或多個值范圍。所述值可以與時間以及值的時間區間(valuestime intervals)的范圍相關。可以使用與預處理中使用的算法相同或類似的算法,將該搜索參數轉換為一個或更多個搜索哈希值。該一個或更多個搜索哈希值--其代表涵蓋搜索參數的時間區間一一可以接著被用于搜索滿足搜索請求的數據庫條目。通過將搜索參數轉換為多個搜索哈希值,包含多個搜索參數的搜索請求能夠由單個如下的調用(call)來處理:該調用確定數據庫條目的參考哈希值是否與搜索哈希值中的一個匹配。這能夠顯著地減少搜索數據庫所花費的時間。該搜索技術是模糊搜索的一種,因為該搜索是識別很可能與搜索請求相關的數據庫條目的快速查找(quick lookup)。雖然大多數結果滿足搜索參數,但也可能存在不滿足搜索參數的一些結果。隨后其他技術可以被用于細化搜索結果。例如,在找出屬于特定時間區間的數據庫條目之后,第二技術可以被用來確定所找出的數據庫條目中的哪些數據庫條目在規定的地理位置(geo-locat1n)之內。在其他示例中,其他技術可以被應用以細化或縮窄搜索結果。
[0019]圖1示出根據一個實施例的系統100。系統100包括客戶端110,模糊搜索引擎130和數據庫160。客戶端110可以通過網絡120與模糊搜索引擎130通信。在一些示例中,網絡120可以是局域網、廣域網、藍牙網絡或其他類型的有線或無線網絡。客戶端110可以經由網絡120向模糊搜索引擎130提交搜索請求,以在數據庫160中搜索信息。該搜索請求將能夠找出數據庫160之內的、滿足一個或更多個搜索參數的數據。每個搜索參數可以是值或者值范圍,其中搜索請求將找出滿足或很可能滿足該值或者值范圍的數據庫條目。在這個實施例中,每個搜索參數是時間或時間區間。當數據庫條目具有包含單個值的相應的時間字段時,該數據庫條目滿足該單個值的搜索參數。當數據庫條目具有包含由搜索參數(其可以包括值范圍的外部邊界)指定的值范圍之內的時間值的相應的時間字段時,該數據庫條目滿足該值范圍的搜索參數。在其他實施例中,搜索參數可以是距離的單位或一些其他度量的單位。
[0020]模糊搜索引擎130響應于搜索請求生成數據庫結果。該數據庫結果包括一個或更多個來自數據庫160的、很可能滿足該搜索請求的數據庫條目。模糊搜索引擎130包括時間哈希轉換器(temporal hash converter) 140和哈希值搜索150。時間哈希轉換器140被配置為將由模糊搜索引擎130接收的搜索請求轉換為一個或更多個搜索哈希值。每個搜索哈希值可以代表時間區間。在一個示例中,該轉換由時間哈希轉換器140的哈希函數來執行。
[0021]所生成的搜索哈希值的長度可