用于處理數(shù)據(jù)庫(kù)查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法和計(jì)算機(jī)系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及用于處理數(shù)據(jù)庫(kù)查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法和計(jì)算機(jī)系統(tǒng)。更具體而言,涉及一種用于處理數(shù)據(jù)庫(kù)中的查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法,該查詢包括搜索值。數(shù)據(jù)庫(kù)包括多個(gè)數(shù)據(jù)集,該數(shù)據(jù)集包括條目,其中距離統(tǒng)計(jì)數(shù)據(jù)被分配給該數(shù)據(jù)集。距離統(tǒng)計(jì)數(shù)據(jù)描述該多個(gè)數(shù)據(jù)集的數(shù)據(jù)集的條目的值與參考值之間的最小距離和最大距離。該方法包括確定搜索值和參考值之間的距離,所述確定產(chǎn)生搜索距離,從該多個(gè)數(shù)據(jù)集中確定對(duì)于其的搜索距離在由各自的距離統(tǒng)計(jì)數(shù)據(jù)描述的最小距離和最大距離所給出的限制內(nèi)的數(shù)據(jù)集的子集,并且在數(shù)據(jù)集的該子集中搜索搜索值。
【專(zhuān)利說(shuō)明】
用于處理數(shù)據(jù)庫(kù)查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法和計(jì)算機(jī)系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)查詢,并且更具體而言,涉及限制由數(shù)據(jù)庫(kù)查詢?cè)斐傻淖x操作。
【背景技術(shù)】
[0002]現(xiàn)代數(shù)據(jù)倉(cāng)庫(kù)的挑戰(zhàn)之一是每個(gè)數(shù)據(jù)庫(kù)查詢必須被處理的數(shù)據(jù)量。在用于每個(gè)查詢的樸素方法中,對(duì)于單個(gè)查詢表達(dá)式將必須搜索整個(gè)數(shù)據(jù)庫(kù)。
[0003]為了限制資源消耗和對(duì)盤(pán)的輸入/輸出操作的量,在本領(lǐng)域中已知一種對(duì)包括在數(shù)據(jù)庫(kù)中的數(shù)據(jù)引入低級(jí)別的統(tǒng)計(jì)數(shù)據(jù)的方法。在這種方法中,對(duì)非常小的數(shù)據(jù)塊保持一些基本的統(tǒng)計(jì)數(shù)據(jù)。例如,對(duì)于每個(gè)數(shù)據(jù)塊,確定特定列的條目的最小值和最大值。如果查詢?cè)儐?wèn)被確定為不在由該最小值和最大值給定的范圍內(nèi)的數(shù)據(jù),則該數(shù)據(jù)塊將根本就不從盤(pán)中被讀取,因?yàn)樵谠摂?shù)據(jù)子集中不會(huì)找到所搜索的數(shù)據(jù)。
[0004]但是,這種方法有限制,就是它對(duì)包括字符的表達(dá)式工作不高效,因?yàn)橐肓械臈l目的最小值和最大值的方法對(duì)于排序數(shù)據(jù)庫(kù)中的整數(shù)或浮點(diǎn)類(lèi)型的條目工作得最好。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目標(biāo)是提供用于處理數(shù)據(jù)庫(kù)中的查詢的改進(jìn)的計(jì)算機(jī)實(shí)現(xiàn)的方法、計(jì)算機(jī)程序產(chǎn)品和對(duì)應(yīng)的控制系統(tǒng),如在獨(dú)立權(quán)利要求中所給出的。本發(fā)明的實(shí)施例在從屬權(quán)利要求中給出。如果本發(fā)明的實(shí)施例不相互排斥,則它們可以彼此自由地組合。
[0006]在一方面,本發(fā)明涉及用于處理數(shù)據(jù)庫(kù)中的查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中該查詢包括搜索值。數(shù)據(jù)庫(kù)包括多個(gè)數(shù)據(jù)集并且該數(shù)據(jù)集包括條目,例如像整數(shù)值、字符值、字符串或任何其它類(lèi)型的數(shù)據(jù)。數(shù)據(jù)集具有分配給其的距離統(tǒng)計(jì)數(shù)據(jù)。距離統(tǒng)計(jì)數(shù)據(jù)描述該多個(gè)數(shù)據(jù)集中的數(shù)據(jù)集的條目的值與參考值之間的最小距離和最大距離。
[0007]—旦包括搜索值的查詢被接收,用于處理查詢的方法就以確定搜索值與參考值之間的距離開(kāi)始,其中所述確定產(chǎn)生搜索距離。一旦搜索距離已被確定,就從該多個(gè)數(shù)據(jù)集中確定對(duì)于其的搜索距離在由各自的距離統(tǒng)計(jì)數(shù)據(jù)描述的最小距離和最大距離給定的限制內(nèi)的數(shù)據(jù)集的子集。然后,對(duì)搜索值的搜索只在數(shù)據(jù)集的所述子集中進(jìn)行。
[0008]如這里所引入的,“距離”描述對(duì)兩個(gè)表達(dá)式之間的相似性的測(cè)度。如后面將描述的,表達(dá)式之間的這種相似性可以以多種方式計(jì)算。一個(gè)簡(jiǎn)單的例子是漢明(Hamming)距離的計(jì)算,漢明距離代表兩個(gè)表達(dá)式共同具有的位數(shù)。另外,在本公開(kāi)內(nèi)容的意義上,“距離”可以指兩個(gè)數(shù)字之間的距離。在這種情況下,距離將是兩個(gè)數(shù)字之間的數(shù)值差。
[0009]實(shí)施例可以具有這樣的優(yōu)點(diǎn):通過(guò)所描述的一方面搜索值和參考值的相似性與另一方面參考值和數(shù)據(jù)集的內(nèi)容的相似性的比較,可以實(shí)現(xiàn)最有可能包括被搜索的值的數(shù)據(jù)集的預(yù)選擇。如果例如確定數(shù)據(jù)集與搜索值相比與參考值更不相似,則將不必從該數(shù)據(jù)集搜索搜索值,因?yàn)樗阉髦岛懿豢赡鼙话ㄔ谠摂?shù)據(jù)集中。因此,在數(shù)據(jù)庫(kù)中對(duì)搜索值的搜索可以被限定到減少數(shù)量的數(shù)據(jù)集,由此減少用于在數(shù)據(jù)庫(kù)中找到搜索值的I/O操作次數(shù)和對(duì)應(yīng)的計(jì)算工作量。[ΟΟ? O]在一些實(shí)施例中,參考值是多個(gè)參考值之一,其中距離統(tǒng)計(jì)數(shù)據(jù)包括對(duì)于每個(gè)參考值的最小距離和最大距離。在這種情況下,對(duì)每個(gè)參考值執(zhí)行搜索距離的確定,從而產(chǎn)生搜索距離集合。然后,對(duì)該搜索距離集合中的每個(gè)搜索距離執(zhí)行數(shù)據(jù)集的子集的確定。必須注意的是,根據(jù)本實(shí)施例,數(shù)據(jù)集的子集將只包括匹配搜索距離在由對(duì)于每個(gè)參考值的最小距離和最大距離給定的限制內(nèi)的條件的數(shù)據(jù)集。因此,如果至少對(duì)于一個(gè)參考值該搜索距離不在數(shù)據(jù)集的最小距離和最大距離之間,則該數(shù)據(jù)集將不被包括在要搜索搜索值的數(shù)據(jù)集的子集中。
[0011]實(shí)施例可以具有這樣的優(yōu)點(diǎn):通過(guò)引入多個(gè)參考值而不是單個(gè)參考值,從該多個(gè)數(shù)據(jù)集中對(duì)數(shù)據(jù)集的預(yù)選擇的粒度可以提高。依賴于搜索值,會(huì)有可能單個(gè)參考值將產(chǎn)生搜索距離在由各自的距離統(tǒng)計(jì)數(shù)據(jù)的最小/最大距離給定的限制內(nèi)的大量數(shù)據(jù)集。如果搜索值與參考值高度不相似,或者換句話說(shuō),如果搜索值與參考值之間的距離非常高,情況尤其如此。但是,搜索值到第二參考值的距離可能小得多,由此在確定第二參考值與數(shù)據(jù)庫(kù)的數(shù)據(jù)集的相似性時(shí)產(chǎn)生更多的信息。因此,對(duì)數(shù)據(jù)集的子集的預(yù)選擇可以通過(guò)引入越來(lái)越多的參考值來(lái)改進(jìn),因?yàn)殡S著參考值的數(shù)量增加,找到與搜索值非常相似的一個(gè)參考值的可能性也將增加。
[0012]在一些實(shí)施例中,該方法還包括從該多個(gè)搜索距離中確定最小搜索距離和相應(yīng)的第一參考值。在這種情況下,從該多個(gè)數(shù)據(jù)集中確定數(shù)據(jù)集的子集只考慮對(duì)于第一參考值的最小距離和最大距離。
[0013]實(shí)施例可以具有這樣的優(yōu)點(diǎn):通過(guò)確定最小搜索距離來(lái)確定與搜索值最相似的參考值,可以確定將為給定的搜索值提供關(guān)于數(shù)據(jù)集的內(nèi)容的最有代表性的信息的距離統(tǒng)計(jì)數(shù)據(jù)集合。如果所確定的第一參考值與數(shù)據(jù)集的內(nèi)容之間的相似性非常高,則搜索值和該數(shù)據(jù)集的內(nèi)容之間的相似性也將非常高。
[0014]在一些實(shí)施例中,參考值的字符數(shù)小于或等于數(shù)據(jù)集的每個(gè)條目的最大字符數(shù)。例如,如果數(shù)據(jù)集沒(méi)有條目的長(zhǎng)度超過(guò)十個(gè)字符,則不應(yīng)當(dāng)選擇使其長(zhǎng)于十個(gè)字符的參考值。
[0015]實(shí)施例可以具有這樣的優(yōu)點(diǎn):通過(guò)將參考值的字符數(shù)限制到條目的最大字符數(shù),不會(huì)引入?yún)⒖贾蹬c數(shù)據(jù)集的條目之間的不必要的不相似性。例如參考漢明距離,如果沒(méi)有條目比十個(gè)字符長(zhǎng)但參考值是例如13個(gè)字符長(zhǎng),則數(shù)據(jù)集的條目與參考值之間的不相似性將總是大于或等于3。
[0016]在一些實(shí)施例中,數(shù)據(jù)集和數(shù)據(jù)集的條目按字典順序排序,其中參考值是完全相同的字符的序列。例如可以使用26個(gè)參考值,其中參考值是例如拉丁語(yǔ)字母表的十個(gè)完全相同的字母的序列。在這種情況下,例如包括數(shù)據(jù)庫(kù)的前十個(gè)條目的數(shù)據(jù)集將比例如數(shù)據(jù)庫(kù)的最后十個(gè)條目具有與包括全A的參考值的統(tǒng)計(jì)上更高的相似性,因?yàn)閿?shù)據(jù)庫(kù)的前面的條目或者至少其子集將以字母“Α”開(kāi)始。因此,數(shù)據(jù)庫(kù)條目的字符中的至少一個(gè)字符與參考值的字符相同。作為結(jié)果,如果參考值如前面所描述的那樣被選擇,則參考值將與指示條目的第一起始字符到條目的第二起始字符之間的過(guò)渡的索引類(lèi)似地起作用。
[0017]在一些實(shí)施例中,參考值是任意的字符序列。
[0018]在又一實(shí)施例中,參考值的字符序列適應(yīng)于被包括在數(shù)據(jù)集的條目中的值的字符序列。例如,如果數(shù)據(jù)庫(kù)包括五個(gè)條目,這些條目以詞“conf idence”、“contract”、“constitut1n”、“control”和“connect1n”開(kāi)始,則選擇也以字母“con”開(kāi)始的參考值會(huì)是可行的。另一個(gè)例子將是包括全都以“WWW”開(kāi)始的因特網(wǎng)地址的數(shù)據(jù)庫(kù)。另一種使參考值適應(yīng)于數(shù)據(jù)集的條目中所包括的值的可能性可以是確定某個(gè)字符在數(shù)據(jù)庫(kù)的條目的某一位上的頻率。然后,參考值可以被選擇為使得它只包括被發(fā)現(xiàn)在條目的各個(gè)位上具有最高頻率的那些字符。
[0019]在一些實(shí)施例中,參考值被選擇為使得對(duì)于每個(gè)參考值,該參考值與其余參考值之間的距離等于或大于該參考值與具有相同字符數(shù)的表達(dá)式之間的最大可能距離。如果例如距離是通過(guò)比較兩個(gè)表達(dá)式的各個(gè)位來(lái)確定的(Hamming距離),則包括八位的參考值應(yīng)當(dāng)離所有其它參考值至少具有距離8。
[0020]實(shí)施例可以具有這樣的優(yōu)點(diǎn):通過(guò)選擇不相似性最大的參考值,通過(guò)比較搜索值與參考值所獲得的信息被最大化。例如,如果兩個(gè)參考值非常相似,則搜索值與參考值的比較會(huì)對(duì)兩個(gè)參考值都產(chǎn)生相同的距離。因此,與其中僅一個(gè)參考值被使用的情況相比,數(shù)據(jù)集的對(duì)應(yīng)距離統(tǒng)計(jì)數(shù)據(jù)將不會(huì)帶來(lái)任何附加的信息。因此,通過(guò)引入兩個(gè)相似的參考值不會(huì)獲得太多的信息。但是,如果參考值完全不相似,則與搜索值的比較將給出關(guān)于數(shù)據(jù)集的內(nèi)容的更多信息。
[0021]在一些實(shí)施例中,包括在條目中的數(shù)據(jù)是字符(CHAR)和/或可變字符字段(VARCHAR)數(shù)據(jù)。
[0022]在一些實(shí)施例中,在條目的值或搜索值與參考值之間確定的距離是最小編輯距離。最小編輯距離反映從第一表達(dá)式到達(dá)第二表達(dá)式所需的編輯操作的最小數(shù)目。例如,為了從表達(dá)式“Stop”到達(dá)表達(dá)式“step”,只需要用字母“e”代替字母V’。因此,這兩個(gè)表達(dá)式之間的最小編輯距尚將是I。
[0023]在一些實(shí)施例中,編輯距離是根據(jù)Levenshtein度量來(lái)確定的。從第一表達(dá)式到達(dá)第二表達(dá)式必須要執(zhí)行的操作通常是字母的替換、字母的刪除或字母的插入。根據(jù)Levenshte in度量,這些操作當(dāng)中的每一個(gè)都具有被分配的成本值。通過(guò)對(duì)從第一表達(dá)式到達(dá)第二表達(dá)式所必需的所有操作的總成本進(jìn)行計(jì)數(shù),可以確定兩個(gè)表達(dá)式之間的Levenshte in 距離。
[0024]實(shí)施例可以具有這樣的優(yōu)點(diǎn)=Levenshtein度量容易計(jì)算并且因此用于數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)可以例如在用條目填充數(shù)據(jù)庫(kù)時(shí)被計(jì)算,由此不會(huì)在確定對(duì)應(yīng)的距離值時(shí)造成過(guò)多的開(kāi)銷(xiāo)。
[0025]在另一方面,本發(fā)明涉及用于確定用于數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)的方法,該數(shù)據(jù)集包括條目。該方法包括定義至少一個(gè)參考值并且為每個(gè)條目確定該條目的值與參考值之間的距離。這種確定產(chǎn)生距離集合。從這個(gè)距離集合確定最小距離和最大距離。然后,所確定的最小距離和最大距離都作為距離統(tǒng)計(jì)數(shù)據(jù)被分配給數(shù)據(jù)集。
[0026]在還有另一方面,本發(fā)明涉及包括執(zhí)行所述方法的方法步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)程序產(chǎn)品。
[0027]如本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的,本公開(kāi)內(nèi)容的各方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)內(nèi)容的各方面可以采取可以在本文被統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”的完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、駐留軟件、微代碼等)或者結(jié)合軟件方面和硬件方面的實(shí)施例的形式。此外,本公開(kāi)內(nèi)容的各方面可以采取體現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)具有在其上體現(xiàn)的計(jì)算機(jī)可讀程序代碼。
[0028]可以使用一種或多種計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是,例如但不限于,電、磁、光、電磁、紅外線或者半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或者以上所述的任何合適組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體例子(非窮盡列表)將包括以下:具有一條或多條電線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(R0M)、可擦式可編程只讀存儲(chǔ)器(EPR0M或者閃存存儲(chǔ)器)、光纖、便攜式壓縮盤(pán)只讀存儲(chǔ)器(CDROM)、光學(xué)存儲(chǔ)設(shè)備、磁性存儲(chǔ)設(shè)備或者以上所述的任何合適組合。在本文的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以包含或存儲(chǔ)由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其聯(lián)合使用的程序的任何有形介質(zhì)。
[0029]計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波的一部分的傳播數(shù)據(jù)信號(hào),計(jì)算機(jī)可讀程序代碼被體現(xiàn)在該傳播數(shù)據(jù)信號(hào)中。這種傳播信號(hào)可以采取多種形式中的任何一種,包括但不限于電磁、光或者其任何合適的組合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是非計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并且可以傳送、傳播或運(yùn)輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其聯(lián)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。
[0030]體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可以利用任何適當(dāng)?shù)慕橘|(zhì)傳輸,該介質(zhì)包括但不限于無(wú)線、有線線路、光纖電纜、RF等,或者前述這些的任何合適組合。
[0031]用于執(zhí)行本發(fā)明的各方面的操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語(yǔ)言的任何組合來(lái)寫(xiě),該編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言,諸如Java、Smalltalk、C++等,及常規(guī)的過(guò)程化編程語(yǔ)言,諸如“C"編程語(yǔ)言或類(lèi)似的編程語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為獨(dú)立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全地在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何類(lèi)型的網(wǎng)絡(luò)連接到用戶計(jì)算機(jī),該網(wǎng)絡(luò)包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者可以連接到外部計(jì)算機(jī)(例如,利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
【附圖說(shuō)明】
[0032]在下面,僅僅作為例子參考附圖更詳細(xì)地解釋本發(fā)明的實(shí)施例,其中:
[0033]圖1繪出了描述計(jì)算兩個(gè)表達(dá)式之間的距離的第一種可能性的圖示。
[0034]圖2繪出了描述計(jì)算兩個(gè)表達(dá)式之間的距離的第二種可能性的圖示。
[0035]圖3繪出了數(shù)據(jù)庫(kù)和對(duì)應(yīng)的距離統(tǒng)計(jì)數(shù)據(jù)的例子。
[0036]圖4繪出了用于確定數(shù)據(jù)集的子集的方法的流程圖。
[0037]圖5繪出了計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0038]圖1是關(guān)于如何確定兩個(gè)表達(dá)式之間的距離的例子。在這里繪出的例子中,有兩對(duì)表達(dá)式:“INTENT1N” 和 “EXECUT1N” 作為第一對(duì),以及 “EFFICIENT” 和 “INEFFICIENT” 作為第二對(duì)。在圖1所繪出的第一個(gè)例子中,確定表達(dá)式“INTENT1N”與“EXE⑶ΤΙ0Ν”之間的漢明距離。
[0039]漢明距離描述兩個(gè)表達(dá)式有多少位不同。如圖la)中所示,兩個(gè)表達(dá)式的前五位不相同。后四位,“T”、“I”、“O”和“N”對(duì)于兩個(gè)表達(dá)式是相同的位。因此,表達(dá)式“INTENT1N”與?ΧΕ⑶ΤΙ0Ν”之間的漢明距離是五,因?yàn)閷?duì)于這兩個(gè)表達(dá)式有五位不相同。確定兩個(gè)表達(dá)式之間的漢明距離可以是確定距離的容易方式,但是,兩個(gè)表達(dá)式可能非常相似而兩個(gè)表達(dá)式之間的漢明距離非常大。例如,如圖1b)中所繪出的,第一個(gè)表達(dá)式是“EFFICIENT”并且第二個(gè)表達(dá)式是“INEFFICIENT”。由于兩個(gè)表達(dá)式的公共部分“EFFICIENT”的各個(gè)字符被偏移了兩個(gè)字母,因此兩個(gè)表達(dá)式之間的漢明距離將是10,因?yàn)橹挥械诹弧癐”對(duì)兩個(gè)表達(dá)式是相同的。因此,盡管兩個(gè)表達(dá)式非常相似,但是漢明距離被確定為非常高。
[0040]用于確定兩個(gè)表達(dá)式之間的距離的另一個(gè)例子在圖2中繪出并且被稱為最小編輯距離。最小編輯距離描述為了從第一個(gè)表達(dá)式到達(dá)第二個(gè)表達(dá)式必須要執(zhí)行多少編輯步驟。就像在圖1a)中,用于圖2a)中的例子的兩個(gè)表達(dá)式是“INTENT1N”和“EXECUT1N”。
[0041 ]在第一步,表達(dá)式“INTENT1N”的三個(gè)字母被其它字母替換。被替換的位是該表達(dá)式的第二、第三和第五位。字母的替換在本文中由“s”指示。在后續(xù)步驟中,該表達(dá)式的第一個(gè)字母被刪除,如由“d”指示的。為了從這樣找出的表達(dá)式到達(dá)表達(dá)式“ΕΧΕ⑶ΤΙ0Ν”,字母“C”必須插入在“Ε”和“U”之間,如由小“i”指示的。因此,需要五個(gè)編輯步驟來(lái)從表達(dá)式“INTENT1N”到達(dá)表達(dá)式“ΕΧΕ⑶TI ON”:三個(gè)字母替換、一個(gè)字母刪除和一個(gè)字母插入。當(dāng)然,可以有其它途徑從第一個(gè)表達(dá)式到達(dá)第二個(gè)表達(dá)式,但是,如由名字“最小”編輯距離指示的,最小編輯距離總是對(duì)應(yīng)于編輯步驟的最小次數(shù)。
[0042]如果在圖2a)中繪出的例子中每個(gè)操作具有成本值I,則這將導(dǎo)致兩個(gè)表達(dá)式之間為5的總距離。但是,還有可能向不同的操作分配其它成本值。例如,用另一個(gè)字母替換字母可以被分配成本值2。在這種情況下,表達(dá)式“INTENT1N”與“EXE⑶ΤΙ0Ν”之間的距離將是8。成本值向各個(gè)編輯操作的這種分配可以適應(yīng)于數(shù)據(jù)庫(kù)中條目的類(lèi)型。
[0043 ] 回到之前提到的兩個(gè)表達(dá)式“EFFICIENT”與“ I NEFFICIENT”的相似性的例子,“EFFICIENT”與“INEFFICIENT”之間的最小編輯距離將是2,因?yàn)橹豁毑迦雰蓚€(gè)字母來(lái)從“EFFICIENT”到達(dá)“INEFFICIENT”,如圖2b)中所示。因此,與之前所描述的這兩個(gè)表達(dá)式之間的漢明距離將是11相比,這兩個(gè)表達(dá)式之間的距離將是2。因此,在定義使用哪種距離時(shí)要謹(jǐn)慎。
[0044]圖1中所繪出的例子僅僅針對(duì)包括字母的表達(dá)式。但是,如果數(shù)據(jù)庫(kù)包括例如數(shù)字(整數(shù)、浮點(diǎn)數(shù)、…),則兩個(gè)數(shù)字之間的距離可以被定義為兩個(gè)數(shù)字之間的數(shù)值差。但是,也有可能使用最小編輯距離來(lái)從一串?dāng)?shù)字到達(dá)另一串?dāng)?shù)字。
[0045]圖3是包括20個(gè)條目的數(shù)據(jù)庫(kù)100的例子。這20個(gè)條目是詞escape、ahead、solo、stopwatch、slowdown、confidence、Cherokee、iron、company、earth、resistor、magnitude、wave、firearm、cement、contract、marker、distance、length 和mouse ο 這 20 個(gè)表達(dá)式被細(xì)分成四個(gè)數(shù)據(jù)集102、104、106和108,每個(gè)數(shù)據(jù)集包括五個(gè)表達(dá)式。分配給這些數(shù)據(jù)集的是距離統(tǒng)計(jì)數(shù)據(jù)110。在下文中,將討論那些距離統(tǒng)計(jì)數(shù)據(jù)110的確定以及數(shù)據(jù)庫(kù)查詢的例子。
[0046]在圖3中所繪出的例子中,兩個(gè)參考值是10次字母“O”的序列作為參考值I(Ref1)以及10次字母“E”的序列作為參考值2(Ref2)。選擇10位的參考值長(zhǎng)度是看似有道理的,因?yàn)閿?shù)據(jù)庫(kù)中的最長(zhǎng)條目,即“confidence”,也包括十位。
[0047]關(guān)注第一個(gè)數(shù)據(jù)集102,包括在第一個(gè)數(shù)據(jù)集102中的表達(dá)式到第一參考值(Ref1)的各個(gè)距離的確定在下文中描述。
[0048]第一個(gè)表達(dá)式“escape”沒(méi)有與參考值Ref1共同的字母。如果距離被定義為兩個(gè)表達(dá)式之間的最小編輯距離,其中每個(gè)編輯操作具有成本值I,則表達(dá)式“escape”與十個(gè)O的序列之間的距離是10。由于后續(xù)表達(dá)式“ahead”也沒(méi)有與參考值共同的字母,因此對(duì)應(yīng)的距離也是10。第一個(gè)數(shù)據(jù)集102的第三個(gè)表達(dá)式是“solo”。因?yàn)樵~“solo”與第一參考值如^有兩個(gè)共同的字母,所以第三個(gè)數(shù)據(jù)庫(kù)條目與第一參考值Ref1之間的距離是8。第一個(gè)數(shù)據(jù)集102的第四個(gè)條目“stopwatch”與Ref1只有一個(gè)共同的字母,因此距離是9。第一個(gè)數(shù)據(jù)集102的第五個(gè)條目“slowdown”與第一參考值有共同的兩位,因此距離是8。
[0049]因此,對(duì)于第一個(gè)數(shù)據(jù)集102,條目離第一參考值的最小距離是8,其中第一個(gè)數(shù)據(jù)集102的條目離第一參考值的最大距離是10。這個(gè)信息存儲(chǔ)在距離統(tǒng)計(jì)數(shù)據(jù)110中。
[0050]相應(yīng)地進(jìn)行用于其余數(shù)據(jù)集104、106和108的距離統(tǒng)計(jì)數(shù)據(jù)的確定。在圖3中給出數(shù)據(jù)集離第一參考值的最小距離和最大距離的結(jié)果。對(duì)是10次字母“E”的第二參考值Ref2也進(jìn)行距離值的相同確定。雖然第一個(gè)數(shù)據(jù)集102中的第一個(gè)表達(dá)式“escape”離第一參考值Ref i有距離10,但是表達(dá)式“escape”與第二參考值Ref 2之間的距離僅為8,因?yàn)楸磉_(dá)式“escape”包括兩個(gè)e。因此,對(duì)于第二參考值的距離統(tǒng)計(jì)數(shù)據(jù)與對(duì)于第一參考值的距離統(tǒng)計(jì)數(shù)據(jù)不同。
[0051]由于如前所述的距離統(tǒng)計(jì)數(shù)據(jù)的確定將不產(chǎn)生顯著的計(jì)算工作量,因此可以例如在一旦數(shù)據(jù)庫(kù)加載有條目時(shí)執(zhí)行距離統(tǒng)計(jì)數(shù)據(jù)的確定。為此,參考值應(yīng)當(dāng)在用條目填充數(shù)據(jù)庫(kù)之前或之后很短時(shí)間內(nèi)被定義。
[0052]為了給出數(shù)據(jù)庫(kù)查詢的例子,例如可以接收對(duì)表達(dá)式“Cherokee”的查詢。為了限制對(duì)圖3中所繪出的數(shù)據(jù)庫(kù)的讀操作,第一步將是確定要搜索的表達(dá)式與參考值中的一個(gè)之間的搜索距離。例如,項(xiàng)“Cherokee”與第一參考值Ref1之間的距離是9。如可以從距離統(tǒng)計(jì)數(shù)據(jù)110看到的,每個(gè)數(shù)據(jù)集提供包括值9的距離范圍。因此,如果第一參考值被用于選擇數(shù)據(jù)集的子集,則對(duì)項(xiàng)“Cherokee”的搜索將必須在每個(gè)數(shù)據(jù)集中執(zhí)行。
[0053]但是,如果利用第二參考值Ref2確定搜索距離,則確定項(xiàng)“Cherokee”離第二參考值Ref2具有距離7。如從圖2中所繪出的表可以看到的,只有第二個(gè)數(shù)據(jù)集104提供包括距離7的距離范圍。因此,根據(jù)本公開(kāi)內(nèi)容,對(duì)項(xiàng)“Cherokee”的搜索將只在第二數(shù)據(jù)集104中執(zhí)行,因?yàn)榫嚯x統(tǒng)計(jì)數(shù)據(jù)指示項(xiàng)“Cherokee”將不會(huì)在數(shù)據(jù)集102、106和108中找到。因此,為了找到被包括在數(shù)據(jù)庫(kù)查詢中的搜索值,將只須搜索數(shù)據(jù)庫(kù)的四分之一。
[0054]圖4是示出用于處理數(shù)據(jù)庫(kù)中的查詢的方法的流程圖。根據(jù)實(shí)施例,查詢包括搜索值。在第一方法步驟200中,通過(guò)確定搜索值與參考值之間的距離確定搜索距離。
[0055]一旦在步驟200中確定了搜索距離,就在步驟202中訪問(wèn)第一數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)。在步驟204中,確定搜索距離是否在由被包括在數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)中的最小距離和最大距離給定的限制內(nèi)。如果確定搜索距離不在由數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)給定的限制內(nèi),則該數(shù)據(jù)集不添加到要搜索搜索值的數(shù)據(jù)集的子集并且因此對(duì)于搜索206來(lái)說(shuō)被忽略。然后,方法回到步驟202并且訪問(wèn)用于另一數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)。
[0056]但是,如果確定搜索距離實(shí)際上在由被包括在數(shù)據(jù)集的距離統(tǒng)計(jì)數(shù)據(jù)中的最小距離和最大距離給定的限制內(nèi),則在步驟208中該數(shù)據(jù)集被添加到數(shù)據(jù)集的子集。然后,對(duì)被包括在數(shù)據(jù)庫(kù)中、要被搜索搜索值的每個(gè)數(shù)據(jù)集重復(fù)步驟202、204、206和208,其中步驟202、204、206和208的重復(fù)產(chǎn)生接下來(lái)被搜索搜索值的數(shù)據(jù)集的子集。
[0057]圖5示出了系統(tǒng)300中形式為通用計(jì)算設(shè)備的計(jì)算機(jī)系統(tǒng)(或服務(wù)器)312。計(jì)算機(jī)系統(tǒng)312的部件可以包括但不限于,一個(gè)或多個(gè)處理器或處理單元316、存儲(chǔ)器系統(tǒng)328、以及將包括存儲(chǔ)器系統(tǒng)328的各種系統(tǒng)部件耦合到處理器316的總線318。
[0058]計(jì)算機(jī)系統(tǒng)312通常包括各種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這種介質(zhì)可以是可由計(jì)算機(jī)系統(tǒng)312訪問(wèn)的任何可用介質(zhì),并且包括易失性介質(zhì)和非易失性介質(zhì),可移除介質(zhì)和不可移除介質(zhì)。
[0059]存儲(chǔ)器系統(tǒng)328可以包括形式為易失性存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),諸如隨機(jī)存取存儲(chǔ)器(RAM)和/或高速緩存存儲(chǔ)器。存儲(chǔ)器系統(tǒng)可以包括一個(gè)或多個(gè)活動(dòng)的緩沖存儲(chǔ)器設(shè)備?;顒?dòng)的緩沖設(shè)備可以包括多個(gè)存儲(chǔ)器元件(例如,芯片)?;顒?dòng)的緩沖存儲(chǔ)器設(shè)備可以包括形成的三維(“3D”)存儲(chǔ)器設(shè)備的存儲(chǔ)器層,其中芯片的各個(gè)列形成與處理單元316通信的保管庫(kù)(vault)?;顒?dòng)的緩沖存儲(chǔ)器設(shè)備可以包括可同時(shí)被多個(gè)處理元件訪問(wèn)的分區(qū),其中分區(qū)可以是任何合適的存儲(chǔ)器段,包括但不限于保管庫(kù)。
[0060]處理單元316可以向存儲(chǔ)器系統(tǒng)發(fā)出請(qǐng)求,從而利用動(dòng)態(tài)數(shù)組數(shù)據(jù)結(jié)構(gòu)和關(guān)聯(lián)的元數(shù)據(jù)來(lái)實(shí)現(xiàn)應(yīng)用。
[0061]計(jì)算機(jī)系統(tǒng)312還可以與以下設(shè)備通信:一個(gè)或多個(gè)外部設(shè)備314,諸如鍵盤(pán)、定點(diǎn)設(shè)備、顯示器324等;使用戶能夠與計(jì)算機(jī)系統(tǒng)312交互的一個(gè)或多個(gè)設(shè)備;和/或使計(jì)算機(jī)系統(tǒng)312能夠與一個(gè)或多個(gè)其它計(jì)算設(shè)備通信的任何設(shè)備(例如,網(wǎng)卡、調(diào)制解調(diào)器等)。這種通信可以經(jīng)由(一個(gè)或多個(gè))1/0接口 322發(fā)生。還有,計(jì)算機(jī)系統(tǒng)312可以經(jīng)由網(wǎng)絡(luò)適配器320與一個(gè)或多個(gè)網(wǎng)絡(luò)通信,該一個(gè)或多個(gè)網(wǎng)絡(luò)諸如局域網(wǎng)(LAN)、通用的廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò)(例如,因特網(wǎng))。如所繪出的,網(wǎng)絡(luò)適配器320經(jīng)由總線318與計(jì)算機(jī)系統(tǒng)/服務(wù)器312的其它部件通信。
[0062]本發(fā)明可以是系統(tǒng)、方法和/或計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上載有用于使處理器實(shí)現(xiàn)本發(fā)明的各個(gè)方面的計(jì)算機(jī)可讀程序指令。
[0063]計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以保持和存儲(chǔ)由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是但不限于電存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備、電磁存儲(chǔ)設(shè)備、半導(dǎo)體存儲(chǔ)設(shè)備或者上述的任何合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、便攜式壓縮盤(pán)只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能盤(pán)(DVD)、記憶棒、軟盤(pán)、機(jī)械編碼設(shè)備、例如其上存儲(chǔ)有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任何合適的組合。這里所使用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)不被解釋為瞬時(shí)信號(hào)本身,諸如無(wú)線電波或者其他自由傳播的電磁波、通過(guò)波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過(guò)光纖電纜的光脈沖)、或者通過(guò)電線傳輸?shù)碾娦盘?hào)。
[0064]這里所描述的計(jì)算機(jī)可讀程序指令可以從計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)下載到各個(gè)計(jì)算/處理設(shè)備,或者通過(guò)網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無(wú)線網(wǎng)下載到外部計(jì)算機(jī)或外部存儲(chǔ)設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無(wú)線傳輸、路由器、防火墻、交換機(jī)、網(wǎng)關(guān)計(jì)算機(jī)和/或邊緣服務(wù)器。每個(gè)計(jì)算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)發(fā)該計(jì)算機(jī)可讀程序指令,以供存儲(chǔ)在各個(gè)計(jì)算/處理設(shè)備中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
[0065]用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機(jī)器指令、機(jī)器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語(yǔ)言的任何組合編寫(xiě)的源代碼或目標(biāo)代碼,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言一諸如Smalltalk、C++等,以及常規(guī)的過(guò)程式編程語(yǔ)言一諸如“C”語(yǔ)言或類(lèi)似的編程語(yǔ)言。計(jì)算機(jī)可讀程序指令可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一些實(shí)施例中,通過(guò)利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息來(lái)個(gè)性化定制電子電路,例如可編程邏輯電路、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計(jì)算機(jī)可讀程序指令,從而實(shí)現(xiàn)本發(fā)明的各個(gè)方面。
[0066]這里參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)可讀程序指令實(shí)現(xiàn)。
[0067]這些計(jì)算機(jī)可讀程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。也可以把這些計(jì)算機(jī)可讀程序指令存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,這些指令使得計(jì)算機(jī)、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲(chǔ)有指令的計(jì)算機(jī)可讀介質(zhì)則包括一個(gè)制造品,其包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的各個(gè)方面的指令。
[0068]也可以把計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作。
[0069]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
【主權(quán)項(xiàng)】
1.一種用于處理數(shù)據(jù)庫(kù)中的查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述查詢包括搜索值,所述數(shù)據(jù)庫(kù)包括多個(gè)數(shù)據(jù)集,所述數(shù)據(jù)集包括條目,其中距離統(tǒng)計(jì)數(shù)據(jù)被分配給所述數(shù)據(jù)集,所述距離統(tǒng)計(jì)數(shù)據(jù)描述所述多個(gè)數(shù)據(jù)集中的數(shù)據(jù)集的條目的值與參考值之間的最小距離和最大距離,所述方法包括: 確定所述搜索值與所述參考值之間的距離,所述確定產(chǎn)生搜索距離; 從所述多個(gè)數(shù)據(jù)集中確定對(duì)于其的搜索距離在由各自的距離統(tǒng)計(jì)數(shù)據(jù)描述的最小距離和最大距離給定的限制內(nèi)的數(shù)據(jù)集的子集;及 在數(shù)據(jù)集的所述子集中搜索所述搜索值。2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述參考值是多個(gè)參考值之一,其中所述距離統(tǒng)計(jì)數(shù)據(jù)包括對(duì)于所述參考值中的每一個(gè)的最小距離和最大距離,其中所述搜索距離的確定是對(duì)所述參考值中的每一個(gè)執(zhí)行的,從而產(chǎn)生搜索距離集合,其中數(shù)據(jù)集的所述子集的確定是對(duì)所述搜索距離集合中的每個(gè)搜索距離執(zhí)行的。3.如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述方法還包括從多個(gè)搜索距離中確定最小搜索距離和相應(yīng)的第一參考值,其中在從所述多個(gè)數(shù)據(jù)集中確定數(shù)據(jù)集的所述子集時(shí)只考慮對(duì)于第一參考值的最小距離和最大距離。4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述參考值的字符數(shù)小于或等于數(shù)據(jù)集的每個(gè)條目的最大字符數(shù)。5.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中數(shù)據(jù)集和數(shù)據(jù)集的條目按字典順序排序,其中所述參考值是相同字符的序列。6.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述參考值是字符的任意序列。7.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述參考值的字符序列適應(yīng)于被包括在數(shù)據(jù)集的條目中的值的字符序列。8.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述參考值被選擇為使得對(duì)于每個(gè)參考值,該參考值與其余參考值之間的距離大于或等于該參考值與具有相同字符數(shù)的表達(dá)式之間的最大可能距離。9.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中被包括在條目中的數(shù)據(jù)是字符(CHAR)和/或可變字符字段(VARCHAR)數(shù)據(jù)。10.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中在條目的值或搜索值與參考值之間確定的距離是最小編輯距離。11.如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述編輯距離是根據(jù)Levenshtein度量來(lái)確定的。12.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 為多個(gè)條目定義至少一個(gè)參考值,從而確定所述多個(gè)條目中的條目的值與所述參考值之間的距離,所述確定產(chǎn)生距離集合,其中所述多個(gè)條目中的每個(gè)條目與數(shù)據(jù)集關(guān)聯(lián); 從所述距離集合確定最小距離和最大距離;及 向數(shù)據(jù)集分配所確定的最小距離和最大距離作為距離統(tǒng)計(jì)數(shù)據(jù)。13.—種用于處理數(shù)據(jù)庫(kù)中的查詢的計(jì)算機(jī)系統(tǒng),所述查詢包括搜索值,所述數(shù)據(jù)庫(kù)包括多個(gè)數(shù)據(jù)集,所述數(shù)據(jù)集包括條目,其中距離統(tǒng)計(jì)數(shù)據(jù)被分配給所述數(shù)據(jù)集,距離統(tǒng)計(jì)數(shù)據(jù)描述所述多個(gè)數(shù)據(jù)集中的數(shù)據(jù)集的條目的值與參考值之間的最小距離和最大距離,所述計(jì)算機(jī)系統(tǒng)包括: 一個(gè)或多個(gè)處理器、一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器、一個(gè)或多個(gè)計(jì)算機(jī)可讀有形存儲(chǔ)設(shè)備,以及存儲(chǔ)在所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備當(dāng)中的至少一個(gè)上的程序指令,所述程序指令經(jīng)由所述一個(gè)或多個(gè)存儲(chǔ)器當(dāng)中的至少一個(gè)由所述一個(gè)或多個(gè)處理器當(dāng)中的至少一個(gè)執(zhí)行,其中所述計(jì)算機(jī)系統(tǒng)能夠執(zhí)行包括以下步驟的方法: 確定所述搜索值與所述參考值之間的距離,所述確定產(chǎn)生搜索距離; 從所述多個(gè)數(shù)據(jù)集中確定對(duì)于其的搜索距離在由各自的距離統(tǒng)計(jì)數(shù)據(jù)描述的最小距離和最大距離給定的限制內(nèi)的數(shù)據(jù)集的子集;及 在數(shù)據(jù)集的所述子集中搜索所述搜索值。14.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其中所述參考值是多個(gè)參考值之一,其中所述距離統(tǒng)計(jì)數(shù)據(jù)包括對(duì)于每個(gè)參考值的最小距離和最大距離,其中所述搜索距離的確定是對(duì)所述參考值中的每一個(gè)執(zhí)行的,從而產(chǎn)生搜索距離集合,其中數(shù)據(jù)集的所述子集的確定是對(duì)所述搜索距離集合中的每個(gè)搜索距離執(zhí)行的。15.如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其中所述方法還包括從所述多個(gè)搜索距離中確定最小搜索距離和相應(yīng)的第一參考值,其中在從所述多個(gè)數(shù)據(jù)集確定數(shù)據(jù)集的所述子集時(shí)只考慮對(duì)于第一參考值的最小距離和最大距離。16.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其中所述參考值的字符數(shù)小于或等于數(shù)據(jù)集的每個(gè)條目的最大字符數(shù)。
【文檔編號(hào)】G06F17/30GK105893453SQ201610078349
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年2月4日
【發(fā)明人】L·加扎, A·M·格魯斯?jié)苫? T·卡扎爾斯基, K·K·斯基布斯基, T·斯特蘭多姆斯基
【申請(qǐng)人】國(guó)際商業(yè)機(jī)器公司