一種基於搜尋引擎技術的資料庫檢索方法
2023-06-17 02:55:06
一種基於搜尋引擎技術的資料庫檢索方法
【專利摘要】本發明公開了一種基於搜尋引擎技術的資料庫檢索方法,所述方法包括:S1.設置一個帶有服務接口的檢索伺服器,用於提供輔助的快速檢索服務,所述檢索伺服器從關係型資料庫中獲取數據並建立索引;S2.客戶端通過服務接口向檢索伺服器發送檢索請求;S3.檢索伺服器根據檢索條件獲取檢索結果然後通過服務接口把檢索結果發送給客戶端;S4.客戶端對返回的結果進行處理顯示。本發明在不影響原有資料庫系統性能的前提下額外增加了檢索伺服器實現了高效率的檢索功能。
【專利說明】一種基於搜尋引擎技術的資料庫檢索方法
【技術領域】
[0001]本發明涉及信息檢索技術,尤其涉及一種基於搜尋引擎技術的資料庫檢索方法。【背景技術】
[0002]目前對關係型資料庫的內容進行檢索,一般編寫SQL查詢語句,讓資料庫系統來執行。但對於記錄條數較多的情況,例如上億條,資料庫執行檢索的效率很低。
[0003]為了提高檢索效率,目前採用的技術方法都是圍繞資料庫本身進行優化,包括:1.對經常需要作為檢索條件的欄位建立索引;2.將大的資料庫表進行分區或分表處理,再結合應用邏輯的優化來提高對部分數據進行檢索的效率。
[0004]然而,創建索引和分區分表雖能提升對關係型資料庫進行內容檢索的效率,但是資料庫系統也需要承受很大的代價,說明如下:
由於關係型資料庫的特性,在相關的欄位建立索引之後,會導致資料庫其它操作的性能下降,例如插入、更新、刪除等;而且,當檢索條件複雜的情況,需要對較多的欄位建立索弓丨,性能代價將會更大。另外,對資料庫進行分區和分表之後,如果需要在全局的數據中進行檢索,仍然要面臨數據合併和排序的性能問題。
【發明內容】
[0005]為了克服現有技術的不足,本發明提供了一種基於搜尋引擎技術的資料庫檢索方法,它不影響原有資料庫系統的性能,通過額外增加檢索伺服器,利用搜尋引擎的技術,對資料庫的內容提供高性能的檢索服務。
[0006]本發明採用如下技術方案:
一種基於搜尋引擎技術的資料庫檢索方法,所述方法包括:
51.設置一個帶有服務接口的檢索伺服器,用於提供輔助的快速檢索服務,所述檢索伺服器從關係型資料庫中獲取數據並建立索引;
52.客戶端通過服務接口向檢索伺服器發送檢索請求;
53.檢索伺服器根據檢索條件獲取檢索結果然後通過服務接口把檢索結果發送給客戶端;
54.客戶端對返回的結果進行處理顯示。
[0007]本發明主要通過額外增加檢索伺服器對關係型資料庫中新增加的數據進行索弓I建立,然後讓客戶端在檢索伺服器裡面快速獲取想要的數據信息,這樣比起原先直接在關係型資料庫裡檢索的速度大大提高了,因為關係型資料庫隨著新的數據進入,當數據量增長到一定程度時會使它的處理性能遭遇到瓶頸,使得檢索速度變得很緩慢,而採用的這樣的檢索伺服器來響應客戶端的請求就很快捷。
[0008]其中,所述檢索伺服器從關係型資料庫中獲取數據並建立索引具體包括:
511.檢索伺服器根據設定的時間間隔,結合最近一次獲取數據的時間戳,定時從關係型資料庫中獲取更新的數據;
512.對新的數據進行分詞處理; S13.根據分詞和文檔的包含關係,建立倒排索引,並寫入結構緊湊的索引文件中。
[0009]其中,對於步驟S13,當索引文件增加到一定程度時,對其進行合併。
[0010]結合步驟S13,步驟S4提到客戶端對返回的結果進行處理顯示具體是本發明在對新的數據做了分詞之後,只保留倒排索引,不保留原始全部信息,這樣檢索伺服器發送給客戶端的檢索結果為數據滿足檢索條件且記錄在關係型資料庫中的位置信息,然後客戶端再根據這位置信息去關係型資料庫裡快速獲取詳細的數據信息。但是,這種只是配置方式的一種,檢索伺服器中保留和返回哪些原始信息,這個可以根據實際需要配置,也即檢索伺服器也可以保留更新數據的全部信息,然後根據檢索條件把全部信息發送給客戶端。
[0011]另外,本發明對不同欄位的數據類型採用相應的索引方法,對文本則對其分詞後再根據分詞來建立索引,對數值則採用二叉樹進行存儲。
其中,對於步驟S3,根據檢索條件,在索引文件中查找滿足條件的內容,一般根據相關性對其進行排序,也可以根據用戶指定的條件進行排序。
[0012]為了達到高性能的目的,需要儘量將索引文件保持在檢索伺服器的內存中,除了合理設計索引文件的存儲格式之外,本發明還設有緩存機制,將檢索條件中包含取值區間的檢索結果緩存到檢索伺服器的內存中,使得後續的相似查詢可以獲得更快速的響應。
[0013]本發明與現有技術相比具有的有益效果為:
1.額外增加的檢索伺服器在不影響原有客戶端的前提下,實現高效率的檢索功能。
[0014]2.良好的緩存機制使得相似檢索可以得到更快的相應。
【專利附圖】
【附圖說明】
[0015]圖1:本發明的流程圖。
【具體實施方式】
[0016]下面結合附圖對本發明作進一步描述。
[0017]結合圖1所示,一種基於搜尋引擎技術的資料庫檢索方法,所述方法包括:
51.設置一個帶有服務接口的檢索伺服器,用於提供輔助的快速檢索服務,所述檢索伺服器根據設定的時間間隔,結合最近一次獲取數據的時間戳,定時從關係型資料庫中獲取更新的數據,對新的數據進行分詞處理後,根據分詞和文檔的包含關係建立倒排索引,並寫入結構緊湊的索引文件中。當索引文件增加到一定程度時,對其進行合併;
52.應用軟體通過服務接口向檢索伺服器發送檢索請求;
53.檢索伺服器根據檢索條件,在索引文件中查找滿足條件的內容,一般根據相關性對其進行排序,也可以根據用戶指定的條件進行排序,然後獲取檢索結果然後通過服務接口把檢索結果發送給客戶端;
54.應用軟體對返回的結果進行處理顯示。
[0018]此外,該方法還設有緩存機制,將檢索條件中包含取值區間的檢索結果緩存到檢索伺服器的內存中,使得後續的相似查詢可以獲得更快速的響應。
[0019]通過實際操作,在資料庫表中記錄數達到3.8億條的情況下,利用原有的方法,對資料庫系統進行查詢,響應時間是236秒。而利用本發明的技術方案,響應時間是9秒,大大縮短了檢索時間。
【權利要求】
1.一種基於搜尋引擎技術的資料庫檢索方法,其特徵在於,所述方法包括: 51.設置一個帶有服務接口的檢索伺服器,用於提供輔助的快速檢索服務,所述檢索伺服器從關係型資料庫中獲取數據並建立索引; 52.客戶端通過服務接口向檢索伺服器發送檢索請求; 53.檢索伺服器根據檢索條件獲取檢索結果然後通過服務接口把檢索結果發送給客戶端; 54.客戶端對返回的結果進行處理顯示。
2.根據權利要求1所述的一種基於搜尋引擎技術的資料庫檢索方法,其特徵在於,所述檢索伺服器從關係型資料庫中獲取數據並建立索引具體包括: 511.檢索伺服器根據設定的時間間隔,結合最近一次獲取數據的時間戳,定時從關係型資料庫中獲取更新的數據; 512.對新的數據進行分詞處理; 513.根據分詞和文檔的包含關係,建立倒排索引,並寫入結構緊湊的索引文件中。
3.根據權利要求2所述的一種基於搜尋引擎技術的資料庫檢索方法,其特徵在於,當索引文件增加到一定程度時,對其進行合併。
4.根據權利要求1所述的一種基於搜尋引擎技術的資料庫檢索方法,其特徵在於,根據檢索條件,在索引文件中查找滿足條件的內容,一般根據相關性對其進行排序,也可以根據用戶指定的條件進行排序。
5.根據權利要求2所述的一種基於搜尋引擎技術的資料庫檢索方法,其特徵在於,還設有緩存機制,將檢索條件中包含取值區間的檢索結果緩存到檢索伺服器的內存中,使得後續的相似查詢可以獲得更快速的響應。
【文檔編號】G06F17/30GK103744913SQ201310734758
【公開日】2014年4月23日 申請日期:2013年12月27日 優先權日:2013年12月27日
【發明者】勞定雄, 吳仲謀, 陳剛, 蔡青 申請人:高新興科技集團股份有限公司