專利名稱:基于拼音的信息查詢方法、系統(tǒng)和服務器的制作方法
技術領域:
本發(fā)明涉及數據庫技術領域,特別涉及一種基于拼音的信息查詢方法、系統(tǒng)和服務器。
背景技術:
在信息系統(tǒng)查詢中,通常需要輸入一些信息或短語來進行檢索。如在信息系統(tǒng)中要查詢某個用戶的個人資料,通常需要輸入該用戶的姓名;如要檢索某個機構的信息,則需要輸入該機構的名稱。對于信息系統(tǒng)的人員查詢界面,當要檢索某機構的全部人員名單時, 通常有兩種方式A、按照樹形結構方式瀏覽機構列表,然后找到該機構;B、直接在輸入框中輸入機構名稱,通過系統(tǒng)找到該機構。當機構較多時,A方式需要用戶進行多次選擇和查找,而B方式可以使用戶較方便地查詢到需要的機構。通常來說,B方式的信息系統(tǒng)查詢,也有多種不同的實現方式,具體介紹如下。完整輸入的查詢部分信息系統(tǒng)需要完整輸入所要求的短語字符。例如,要查詢“李四”的人員情況,需要完整輸入“李四”2個漢字。當用戶需要頻繁進行查詢操作時,則輸入量較大,不便于用戶使用?;谔崾镜牟樵兎椒壳按蠖鄶敌畔⑾到y(tǒng)都采用輸入提示的方式來進行短語輸入,即當用戶輸入部分漢字后,系統(tǒng)從后臺數據庫檢索包含該部分漢字的所有待輸入項,以列表形式返回給用戶進行選擇。如圖I所示,當用戶在輸入框中輸入“李”后,系統(tǒng)從后臺數據表檢索到“李四”、“李一”等漢字短語,返回給用戶。輸入提示部分解決了完整輸入的輸入量大問題,但是該方法也存在一些不足輸入量仍然較大,對于大多數中文用戶而言,多數使用拼音輸入法進行漢字輸入,即使鍵入漢字數量減少,但每個漢字仍然需要鍵入多個字母(漢字拼音);每次都從后臺數據庫進行漢字檢索,效率較低,因為漢字所在字段往往不包含索引,且其檢索語句往往使用“l(fā)ike (相似)”等匹配方式,數據庫檢索本身效率較低;每次改變輸入均連接一次數據庫,效率較低?;谄匆舻牟樵兎绞侥壳安糠中畔⑾到y(tǒng)米用基于拼音的輸入提不的方式來加快短語查詢,即允許用戶輸入拼音、拼音首字母來進行快速輸入。如導航儀對地址的輸入,機票網站、火車售票系統(tǒng)對地點的輸入。基于數據庫的拼音輸入查詢方式屬于基于拼音的查詢方式。基于數據庫的拼音輸入查詢方式在數據庫的數據表中保存查詢字段的拼音,當用戶輸入拼音后,查詢拼音字段符合輸入拼音要求的相應查詢字段的值,該方法由于每次需要檢索數據庫,效率較低,實現方式如圖2所示,其中,由用戶輸入拼音LS (步驟21),頁面提交到后臺數據庫進行查詢(步驟22),數據庫檢索到拼音以LS開頭的所有短語后,返回給前臺頁面(步驟23),前臺頁面將數據庫返回信息構成為下拉框(步驟24),用戶在下拉框中進行選擇(步驟25),頁面根據用戶選擇再去查詢數據庫(步驟26 —步驟27),并將結果返回前臺頁面(步驟28)。從圖2中可知,最少兩次訪問數據庫。如果用戶輸入的字母較長,則可能有更多次的訪問。通常來說,數據庫訪問是比較慢的,效率較低。
如何能夠讓用戶更快速的查詢到后臺數據庫中的中文短語,更快速的獲取到該短語所在數據庫記錄的信息,是本領域需要解決的技術問題。
發(fā)明內容
本發(fā)明的發(fā)明人發(fā)現上述現有技術中存在問題,并因此針對所述問題中的至少一個問題提出了一種新的技術方案。本發(fā)明的一個目的是提供一種用于基于拼音的信息查詢的技術方案。根據本發(fā)明的第一方面,提供了一種基于拼音的信息查詢方法,包括根據輸入的拼音查詢內存中的兩層以上哈希索引結構獲得候選項,所述兩層以上哈希索引結構根據從數據庫中讀入內存的查詢字段短語的拼音、主鍵構建,所述查詢字段短語的拼音包括短語的全拼音、首字母或模糊拼音;基于對所述候選項的選擇確定選中候選項的主鍵;根據所述選中候選項的主鍵從所述數據庫獲得查詢信息。
可選地,該方法還包括從所述數據庫讀入內存的所述查詢字段短語的限制值,所述候選項包括所述限制值。可選地,該方法還包括將所述查詢字段短語和限制值、主鍵從所述數據庫讀入內存。可選地,兩層以上哈希索引結構為靜態(tài)索引結構和動態(tài)索引結構相結合的兩層以上哈希索引結構??蛇x地,兩層以上哈希索引結構的第一層索引結構為與26個字母對應的靜態(tài)索引結構??蛇x地,該方法還包括用戶輸入的漢字轉換為拼音。根據本發(fā)明的另一方面,提供一種服務器,包括候選項查詢模塊,用于根據輸入的拼音查詢內存中的兩層以上哈希索引結構獲得候選項,所述兩層以上哈希索引結構根據從數據庫中讀入內存的查詢字段短語的拼音、主鍵構建,所述短語的拼音包括短語的全拼音、首字母或模糊拼音;主鍵確定模塊,用于基于對候選項的選擇確定選中候選項的主鍵;查詢信息獲取模塊,用于根據所述選中候選項的主鍵從所述數據庫獲得查詢信息??蛇x地,該服務器還包括索引建立模塊,用于從所述數據庫將所述查詢字段短語、主鍵讀入內存,根據從所述數據庫中讀入內存的查詢字段短語的拼音、主鍵構建所述兩層以上哈希索引結構??蛇x地,數據庫讀取模塊還用于從所述數據庫讀入所述查詢字段短語的限制值,所述候選項包括所述限制值??蛇x地,兩層以上哈希索引結構為靜態(tài)索引結構和動態(tài)索引結構相結合的兩層以上哈希索引結構??蛇x地,兩層以上哈希索引結構的第一層索引結構為與26個字母對應的靜態(tài)索引結構??蛇x地,該服務器還包括拼音轉換模塊,用于將用戶輸入的漢字轉換為拼音,發(fā)送給所述候選項查詢模塊。根據本發(fā)明的又一方面,還提供一種基于拼音的信息查詢系統(tǒng),包括上述的服務器,以及數據庫。
本發(fā)明的一個優(yōu)點在于,能夠讓用戶更快速的查詢到后臺數據庫中的中文短語,更快速的獲取到該短語所在數據庫記錄的信息。通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其優(yōu)點將會變得清楚。
構成說明書的一部分的附圖描述了本發(fā)明的實施例,并且連同說明書一起用于解釋本發(fā)明的原理。參照附圖,根據下面的詳細描述,可以更加清楚地理解本發(fā)明,其中圖I示出基于提示的查詢方法的示意圖。圖2示出基于數據庫的拼音輸入查詢方式的過程示意圖。
圖3A示出兩層以上哈希索引結構的示例。圖3B示出靜態(tài)與動態(tài)哈希索引結構的示例。圖4示出本發(fā)明的基于拼音的信息查詢方法的一個實施例的流程圖。圖5示出本發(fā)明的基于拼音的信息查詢方法的一個實施例的流程圖。圖6示出本發(fā)明的基于拼音的信息查詢方法的一個實施例的流程圖。圖7示出一個雙層哈希索引的示例。圖8示出本發(fā)明的基于拼音的信息查詢方法的一個應用例的示意圖。圖9示出本發(fā)明的服務器的一個實施例的結構圖。圖10示出出本發(fā)明的服務器的另一個實施例的結構圖。
具體實施例方式現在將參照附圖來詳細描述本發(fā)明的各種示例性實施例。應注意到除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數字表達式和數值不限制本發(fā)明的范圍。同時,應當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關系繪制的。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應用或使用的任何限制。對于相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情況下,所述技術、方法和設備應當被視為授權說明書的一部分。在這里示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其它示例可以具有不同的值。應注意到相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。相關術語解釋全拼、拼音首字母、模糊音對于給定的中文短語,對每個漢字的拼音組合稱為全拼,對每個漢字的拼音第一個字母的組合稱為拼音首字母。針對一些特別的發(fā)音習慣、按照一定規(guī)則進行轉換的拼音稱為模糊音。如“張三”的全拼是“zhangsan”,首字母是“zs”,按照南方平翹舌不分規(guī)則而言,其模糊音為“zangshan”。數據庫查詢數據庫維護了一套索引機制,能夠在對索引進行條件檢索時候更加快速。哈希(Hash)索引結構哈希索引是對給定的數據進行散列的一種索引。為了理解,現舉例說明,比如,目前有以英文字母組成的1000個單詞,如果要在這1000個單詞中查找某個單詞,最簡單的方法是對所有單詞進行遍歷。則最差情況需要對全部1000個單詞進行比較,其算法復雜度為(o(n))。哈希索引就是找26個容器,26個容器分別編號為A-Zdf所有單詞按照開頭字母放入容器中,如[you]這個單詞就放在[Y]容器中,[she]這個單詞就放在[S]容器中。如果所有單詞首字母是平均分布的,每個容器中應該有1000/26個單詞,則當我們要查詢某個單詞時候,首先判斷該單詞在哪個容器中,再在該容器中查找,則只需要在1000/26個單詞中找,其算法復雜度為(0(n/26))。示意圖如表I所示
權利要求
1.一種基于拼音的信息查詢方法,其特征在于,包括 根據輸入的拼音查詢內存中的兩層以上哈希索引結構獲得候選項,所述兩層以上哈希索引結構根據從數據庫中讀入內存的查詢字段短語的拼音、主鍵構建,所述查詢字段短語的拼音包括短語的全拼音、首字母或模糊拼音; 基于對所述候選項的選擇確定選中候選項的主鍵; 根據所述選中候選項的主鍵從所述數據庫獲得查詢信息。
2.根據權利要求I所述的方法,其特征在于,還包括 從所述數據庫讀入內存所述查詢字段短語的限制值,所述候選項包括所述限制值。
3.根據權利要求2所述的方法,其特征在于,還包括 將所述查詢字段短語和限制值、主鍵從所述數據庫讀入內存。
4.根據權利要求I所述的方法,其特征在于,所述兩層以上哈希索引結構為靜態(tài)索引結構和動態(tài)索引結構相結合的兩層以上哈希索引結構。
5.根據權利要求4所述的方法,其特征在于,所述兩層以上哈希索引結構的第一層索引結構為與26個字母對應的靜態(tài)索引結構。
6.根據權利要求I所述的方法,其特征在于,還包括 將用戶輸入的漢字轉換為拼音。
7.一種服務器,其特征在于,包括 候選項查詢模塊,用于根據輸入的拼音查詢內存中的兩層以上哈希索引結構獲得候選項,所述兩層以上哈希索引結構根據從數據庫中讀入內存的查詢字段短語的拼音、主鍵構建,所述短語的拼音包括短語的全拼音、首字母或模糊拼音; 主鍵確定模塊,用于基于對候選項的選擇確定選中候選項的主鍵; 查詢信息獲取模塊,用于根據所述選中候選項的主鍵從所述數據庫獲得查詢信息。
8.根據權利要求7所述的服務器,其特征在于,還包括 索引建立模塊,用于從所述數據庫將所述查詢字段短語、主鍵讀入內存,根據從所述數據庫中讀入內存的查詢字段短語的拼音、主鍵構建所述兩層以上哈希索引結構。
9.根據權利要求8所述的服務器,其特征在于,所述索引建立模塊還用于從所述數據庫讀入所述查詢字段短語的限制值,所述候選項包括所述限制值。
10.根據權利要求7所述的服務器,其特征在于,所述兩層以上哈希索引結構為靜態(tài)索引結構和動態(tài)索引結構相結合的兩層以上哈希索引結構。
11.根據權利要求10所述的服務器,其特征在于,所述兩層以上哈希索引結構的第一層索引結構為與26個字母對應的靜態(tài)索引結構。
12.根據權利要求7所述的服務器,其特征在于,還包括 拼音轉換模塊,用于將用戶輸入的漢字轉換為拼音,發(fā)送給所述候選項查詢模塊。
13.一種于拼音的信息查詢系統(tǒng),其特征在于,包括如權利要求7-12中任意一項所述的服務器,以及數據庫。
全文摘要
本發(fā)明公開了一種基于拼音的信息查詢方法、系統(tǒng)和服務器,涉及數據庫技術領域。該查詢方法包括根據輸入的拼音查詢內存中的兩層以上哈希索引結構獲得候選項,兩層以上哈希索引結構根據從數據庫中讀入內存的查詢字段短語的拼音、主鍵構建,查詢字段短語的拼音包括短語的全拼音、首字母或模糊拼音;基于對候選項的選擇確定選中候選項的主鍵;根據選中候選項的主鍵從數據庫獲得查詢信息。本發(fā)明的技術方案在統(tǒng)一框架下,支持中文、中文拼音、首字母、模糊音等多種查詢方式,通過動態(tài)和靜態(tài)結合的哈希索引結構,達到了效率提升與減少索引占用內存的效果;而通過攜帶短語主鍵以及其限制信息,減少了數據庫后續(xù)查詢時間,提高了整個應用效率。
文檔編號G06F17/30GK102819606SQ20121029694
公開日2012年12月12日 申請日期2012年8月20日 優(yōu)先權日2012年8月20日
發(fā)明者郭會, 孫志偉, 劉宇鑒, 王強, 孫建平, 蔡釗, 許國平, 王小強, 方志, 趙瑞, 孫偉, 孟曦, 關博, 王珂, 李湘宜 申請人:中國農業(yè)銀行股份有限公司