本發(fā)明涉及數(shù)據(jù)查詢領(lǐng)域,特別是涉及一種查詢方法及數(shù)據(jù)查詢系統(tǒng)。
背景技術(shù):
模糊查詢是計(jì)算機(jī)查找信息用的最多的一種搜索工具,通過它可以查找到想要的信息。模糊查詢是指利用部分參數(shù)查找到相關(guān)數(shù)據(jù)的方式,通常使用關(guān)鍵字模糊查找。所謂關(guān)鍵字就是登記信息中所包含的字符,比如姓名查詢,僅指定姓名的某個(gè)部分,如姓或者名字中的某個(gè)或者它們的組合,都可以查找到與之相關(guān)的數(shù)據(jù)。
在現(xiàn)有技術(shù)中,大型項(xiàng)目開發(fā)中的優(yōu)化模糊查詢一般都會(huì)需要第三方軟件來實(shí)現(xiàn),第三方軟件安裝起來不但比較麻煩,而且維護(hù)成本高。但是對(duì)于中小型項(xiàng)目的優(yōu)化模糊查詢,如果使用第三方軟件,導(dǎo)致項(xiàng)目成本高,而如果不使用第三方軟件,查詢的時(shí)間就會(huì)很慢。
因此,中小型項(xiàng)目中,如何不需要第三方軟件同時(shí)也可以優(yōu)化模糊查詢,減少模糊查詢時(shí)間,是本領(lǐng)域的技術(shù)人員普遍關(guān)注的問題。
技術(shù)實(shí)現(xiàn)要素:
鑒于此,本發(fā)明的目的在于提供一種查詢方法及數(shù)據(jù)查詢系統(tǒng),用以減少模糊查詢的時(shí)間,提高模糊查詢的效率。
根據(jù)上述發(fā)明目的,本發(fā)明提供一種查詢方法,所述方法包括:
步驟S1,建立一中間鍵,所述中間鍵中至少包括一關(guān)鍵字和所述關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,所述查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID;
步驟S2,接收用戶輸入的關(guān)鍵字;
步驟S3,將所述關(guān)鍵字在所述中間鍵中進(jìn)行精確查找;
步驟S4,若所述關(guān)鍵字匹配成功,則根據(jù)所述中間鍵中所述關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在所述原數(shù)據(jù)庫中獲取所述查詢結(jié)果ID對(duì)應(yīng)的查詢信息;
步驟S5,若所述關(guān)鍵字匹配不成功,則將所述關(guān)鍵字在所述原數(shù)據(jù)庫中進(jìn)行模糊查詢,并輸出查詢信息。
優(yōu)選地,所述步驟S5之后,還包括:
將所述匹配不成功的關(guān)鍵字及其輸出的查詢信息對(duì)應(yīng)的查詢結(jié)果ID寫入中間鍵中。
優(yōu)選地,所述原數(shù)據(jù)庫中的表項(xiàng)至少包括關(guān)鍵字、所述關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID以及所述查詢結(jié)果ID對(duì)應(yīng)的數(shù)據(jù)信息。
優(yōu)選地,所述方法還包括:
在所述中間鍵中每一關(guān)鍵字還對(duì)應(yīng)設(shè)有一更新時(shí)間,所述更新時(shí)間為所述關(guān)鍵字在原數(shù)據(jù)庫中最近一次被模糊查詢的時(shí)間。
優(yōu)選地,所述方法還包括:
在中間鍵中設(shè)置一有效時(shí)間;
查詢關(guān)鍵字的當(dāng)前時(shí)間和中間鍵中所述關(guān)鍵字對(duì)應(yīng)的更新時(shí)間的差值小于有效時(shí)間,執(zhí)行步驟S3-S4;否則,執(zhí)行步驟S5。
根據(jù)上述發(fā)明目的,本發(fā)明還提供一種數(shù)據(jù)查詢系統(tǒng),包括原數(shù)據(jù)庫和查詢模塊,所述系統(tǒng)還包括中間鍵模塊,所述中間鍵模塊中存有至少一關(guān)鍵字和所述關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,所述查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID,所述查詢模塊接收一用戶輸入的關(guān)鍵字,使用該關(guān)鍵字先到所述中間鍵模塊中進(jìn)行精確查詢,若所述關(guān)鍵字匹配成功,則根據(jù)該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在所述原數(shù)據(jù)庫中獲取所述查詢結(jié)果ID對(duì)應(yīng)的查詢信息,若所述關(guān)鍵字匹配不成功,則將所述關(guān)鍵字在所述數(shù)據(jù)庫中進(jìn)行模糊查詢,并輸出查詢信息。
優(yōu)選地,所述中間鍵模塊具體還包括:
配置單元,用于當(dāng)關(guān)鍵字首次在原數(shù)據(jù)庫模糊查詢之后,將輸出的查詢信息對(duì)應(yīng)的查詢結(jié)果ID寫入中間鍵模塊中。
優(yōu)選地,所述中間鍵模塊具體還包括:
匹配單元,用于根據(jù)關(guān)鍵字進(jìn)行精確匹配,獲取配置單元中關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID。
優(yōu)選地,所述中間鍵模塊具體還包括:
時(shí)間設(shè)置單元,用于在所述中間鍵模塊中每一關(guān)鍵字還對(duì)應(yīng)設(shè)有一更新時(shí)間,以及在系統(tǒng)中設(shè)置一有效時(shí)間;
時(shí)間比較單元,用于比較查詢關(guān)鍵字的當(dāng)前時(shí)間和中間鍵模塊中所述關(guān)鍵字對(duì)應(yīng)的更新時(shí)間。
優(yōu)選地,所述原數(shù)據(jù)庫具體還包括:
檢索單元,用于關(guān)鍵字進(jìn)行模糊查詢,獲取查詢結(jié)果ID和對(duì)應(yīng)的查詢信息。
與現(xiàn)有技術(shù)相比,本發(fā)明一種優(yōu)化模糊查詢方法及系統(tǒng),具有以下有益效果:對(duì)中小型項(xiàng)目來說,不需要第三方軟件,也可以簡(jiǎn)單的實(shí)現(xiàn)優(yōu)化模糊查詢,減少了項(xiàng)目成本;通過建立一中間數(shù)據(jù)表,根據(jù)表中關(guān)鍵字和查詢結(jié)果ID的對(duì)應(yīng)關(guān)系,可以直接在原數(shù)據(jù)表根據(jù)查詢結(jié)果ID獲取用戶查詢的數(shù)據(jù)信息,因而減少了模糊查詢的時(shí)間,提高了模糊查詢的效率。
附圖說明
圖1為本發(fā)明實(shí)施例的一種查詢方法的流程圖;
圖2為本發(fā)明實(shí)施例的一種數(shù)據(jù)查詢系統(tǒng)的結(jié)構(gòu)圖;
具體實(shí)施方式
正如背景技術(shù)中提及的,對(duì)中小型項(xiàng)目來說,如何不需要第三方軟件同時(shí)也可以優(yōu)化模糊查詢,減少模糊查詢時(shí)間,是普遍關(guān)注的問題。
因此,本發(fā)明通過建立一中間鍵,該中間鍵中至少包括一關(guān)鍵字和關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,該查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID;根據(jù)用戶輸入的關(guān)鍵字在中間鍵進(jìn)行關(guān)鍵字匹配,然后根據(jù)中間鍵中該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在原數(shù)據(jù)庫中根據(jù)該查詢結(jié)果ID獲取對(duì)應(yīng)的數(shù)據(jù)信息,從而減少了查詢數(shù)據(jù)表的時(shí)間。
以下通過特定的具體實(shí)例并結(jié)合附圖說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點(diǎn)與功效。本發(fā)明亦可通過其它不同的具體實(shí)例加以施行或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)亦可基于不同觀點(diǎn)與應(yīng)用,在不背離本發(fā)明的精神下進(jìn)行各種修飾與變更。
圖1為本發(fā)明一個(gè)實(shí)施例的一種查詢方法的流程圖。如圖1所示,該方法包括:
S1:建立一中間鍵,該中間鍵中至少包括一關(guān)鍵字和該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,該查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID;
S2:接收用戶輸入的關(guān)鍵字;
S3:將該關(guān)鍵字在中間鍵中進(jìn)行精確查找;
S4:若關(guān)鍵字匹配成功,則根據(jù)中間鍵中該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在原數(shù)據(jù)庫中獲取該查詢結(jié)果ID對(duì)應(yīng)的查詢信息;
S5:若關(guān)鍵字匹配不成功,則將該關(guān)鍵字在原數(shù)據(jù)庫中進(jìn)行模糊查詢,并輸出查詢信息。
優(yōu)選地,步驟S5之后,還包括:
將匹配不成功的關(guān)鍵字及其輸出的查詢信息對(duì)應(yīng)的查詢結(jié)果ID寫入中間鍵中。
在本實(shí)施例中,原數(shù)據(jù)庫中存儲(chǔ)有許多條數(shù)據(jù)信息記錄,原數(shù)據(jù)庫中的表項(xiàng)至少包括關(guān)鍵字、關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID以及查詢結(jié)果ID對(duì)應(yīng)的數(shù)據(jù)信息。
在本實(shí)施例中,可以通過一定的算法或者程序,對(duì)原數(shù)據(jù)庫中進(jìn)行關(guān)鍵字的模糊查詢來建立和更新中間鍵,比如,利用服務(wù)器的空閑時(shí)間,例如設(shè)置一些常用的關(guān)鍵詞,通過運(yùn)行一程序腳本來對(duì)原數(shù)據(jù)庫進(jìn)行關(guān)鍵字模糊查詢并且獲取查詢結(jié)果,從而可以建立或者定期更新中間鍵,這對(duì)本技術(shù)領(lǐng)域的人員來說,也是可知的;也可以通過用戶查詢關(guān)鍵詞,在使用本發(fā)明的方法后,來更新和增加中間鍵的表項(xiàng)。
下面就一具體實(shí)施例來說明本發(fā)明。用戶想查找“王小明”這個(gè)人,但是只記得有“明”這個(gè)字,姓名中的幾個(gè)字都不記得了。用戶在移動(dòng)終端輸入“明”這個(gè)字。比如,表1是中間鍵的表項(xiàng)。
比如,表2是原數(shù)據(jù)庫中的表項(xiàng)。
獲取用戶輸入的關(guān)鍵字“明”,將關(guān)鍵字“明”在中間鍵中匹配,如果匹配成功,在中間鍵中找到該關(guān)鍵字“明”對(duì)應(yīng)的查詢結(jié)果ID,如表1中所示,關(guān)鍵字“明”對(duì)應(yīng)的查詢結(jié)果ID為ID1、ID2、ID3、ID4,然后將根據(jù)查詢結(jié)果ID1、ID2、ID3、ID4在原數(shù)據(jù)庫中匹配,獲取在原數(shù)據(jù)庫中查詢結(jié)果ID對(duì)應(yīng)的數(shù)據(jù)信息,如表2所示,將數(shù)據(jù)信息返回給用戶,用戶獲取這些數(shù)據(jù)信息;如果關(guān)鍵字“明”在中間鍵中匹配不成功,則在原數(shù)據(jù)庫中進(jìn)行關(guān)鍵字“明”模糊查詢,獲取關(guān)鍵字“明”對(duì)應(yīng)的查詢結(jié)果ID,如表2所示的查詢結(jié)果ID1、ID2、ID3、ID4,并獲取查詢結(jié)果ID對(duì)應(yīng)的數(shù)據(jù)信息,將數(shù)據(jù)信息返回給用戶,同時(shí)將關(guān)鍵字“明”和查詢結(jié)果ID1、ID2、ID3、ID4記錄到中間鍵中,并且在表中對(duì)應(yīng),如表1所示,這樣再有用戶來查詢關(guān)鍵字“明”,就可以在中間鍵中查詢,根據(jù)表中的查詢結(jié)果ID在原數(shù)據(jù)庫中直接獲取數(shù)據(jù)信息,減少了查詢時(shí)間。
本發(fā)明的再一種實(shí)施方式,該實(shí)施方式還包括:
在中間鍵中每一關(guān)鍵字還對(duì)應(yīng)設(shè)有一更新時(shí)間,該更新時(shí)間為該關(guān)鍵字在原數(shù)據(jù)庫中最近一次被模糊查詢的時(shí)間;
在中間鍵中設(shè)置一有效時(shí)間;
查詢關(guān)鍵字的當(dāng)前時(shí)間和中間鍵中所述關(guān)鍵字對(duì)應(yīng)的更新時(shí)間的差值小于有效時(shí)間,執(zhí)行步驟S3-S4;否則,執(zhí)行步驟S5。
在本實(shí)施例中,若差值大于有效時(shí)間,則將關(guān)鍵字在原數(shù)據(jù)庫中進(jìn)行模糊查詢,將當(dāng)前時(shí)間設(shè)為更新時(shí)間,然后將原數(shù)據(jù)庫中對(duì)應(yīng)的查詢結(jié)果ID、該關(guān)鍵字和更新時(shí)間記錄到中間數(shù)據(jù)表對(duì)應(yīng)的表項(xiàng)中,,并獲取原數(shù)據(jù)庫中查詢結(jié)果ID對(duì)應(yīng)的數(shù)據(jù)信息。
在本實(shí)施例中,在系統(tǒng)中設(shè)置一有效時(shí)間,該有效時(shí)間是用來表示中間鍵中表項(xiàng)的有效時(shí)間。有效時(shí)間可以是幾個(gè)不同的數(shù)值,比如,對(duì)時(shí)效短的關(guān)鍵詞設(shè)置的有效時(shí)間短,對(duì)時(shí)效長(zhǎng)的關(guān)鍵詞設(shè)置的有效時(shí)間長(zhǎng),比如,關(guān)鍵字是“天氣預(yù)報(bào)”一類的,因具有較強(qiáng)的時(shí)效性,可以設(shè)置較短的有效時(shí)間。
綜上,本發(fā)明通過建立一中間鍵,該中間鍵中至少包括一關(guān)鍵字和關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,該查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID;根據(jù)用戶輸入的關(guān)鍵字在中間鍵進(jìn)行關(guān)鍵字匹配,然后根據(jù)中間鍵中該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在原數(shù)據(jù)庫中根據(jù)該查詢結(jié)果ID獲取對(duì)應(yīng)的數(shù)據(jù)信息,也可以簡(jiǎn)單的實(shí)現(xiàn)優(yōu)化模糊查詢,不需要第三方軟件,從而減少了項(xiàng)目成本;同時(shí)減少了模糊查詢的時(shí)間,提高了查詢的效率。
圖2是本發(fā)明的實(shí)施例的一種數(shù)據(jù)查詢系統(tǒng)的結(jié)構(gòu)圖。如圖2所示,該系統(tǒng)包括包括原數(shù)據(jù)庫模塊20和查詢模塊21,該系統(tǒng)還包括中間鍵模塊22,中間鍵模塊22中存有至少一關(guān)鍵字和該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,該查詢結(jié)果ID為該關(guān)鍵字在原數(shù)據(jù)庫20中通過模糊查詢輸出的查詢結(jié)果對(duì)應(yīng)的ID,查詢模塊1接收一用戶輸入的關(guān)鍵字,使用該關(guān)鍵字先到中間鍵模塊22中進(jìn)行精確查詢,若關(guān)鍵字匹配成功,則根據(jù)該關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID,在原數(shù)據(jù)庫20中獲取查詢結(jié)果ID對(duì)應(yīng)的查詢信息,若關(guān)鍵字匹配不成功,則將關(guān)鍵字在原數(shù)據(jù)庫20中進(jìn)行模糊查詢,并輸出查詢信息。
該中間鍵模塊22具體還包括:
配置單元220,用于當(dāng)關(guān)鍵字首次在原數(shù)據(jù)庫模糊查詢之后,將輸出的查詢信息對(duì)應(yīng)的查詢結(jié)果ID寫入中間鍵模塊中。
匹配單元221,用于根據(jù)關(guān)鍵字進(jìn)行精確匹配,獲取配置單元中關(guān)鍵字對(duì)應(yīng)的查詢結(jié)果ID;
時(shí)間設(shè)置單元222,用于在所述中間鍵模塊中每一關(guān)鍵字還對(duì)應(yīng)設(shè)有一更新時(shí)間,以及在系統(tǒng)中設(shè)置一有效時(shí)間;
時(shí)間比較單元223,用于比較查詢關(guān)鍵字的當(dāng)前時(shí)間和中間鍵模塊中所述關(guān)鍵字對(duì)應(yīng)的更新時(shí)間。
原數(shù)據(jù)庫模塊20具體還包括:
檢索單元201,用于關(guān)鍵字進(jìn)行模糊查詢,獲取查詢結(jié)果ID和對(duì)應(yīng)的查詢信息。
綜上所述,本發(fā)明一種查詢方法及數(shù)據(jù)查詢系統(tǒng),對(duì)中小型項(xiàng)目來說,不需要第三方軟件,也可以簡(jiǎn)單的實(shí)現(xiàn)優(yōu)化模糊查詢,減少了項(xiàng)目成本;同時(shí)減少了模糊查詢的時(shí)間,提高了模糊查詢的效率。
任何本領(lǐng)域技術(shù)人員均可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾與改變。因此,本發(fā)明的權(quán)利保護(hù)范圍,應(yīng)如權(quán)利要求書所列。