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