一種數據查詢的方法、服務器及終端的制作方法
【專利摘要】本發明公開了一種數據查詢的方法,包括:服務器接收到終端的查詢請求消息后,將所述查詢請求消息中的多項待查詢數據的信息發送給指定搜索服務器;接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。通過本方案不僅可以避免直接操作數據庫,還可以提升傳輸效率。
【專利說明】
一種數據查詢的方法、服務器及終端
技術領域
[0001]本申請涉及但不限于通信領域,尤指一種數據查詢的方法、服務器及終端。
【背景技術】
[0002]在客戶端與服務端交互的過程中,難免要對數據庫進行查詢,但當數據量多的時候,直接操作數據庫會使得查詢效率大大降低,不符合API (Applicat1n ProgrammingInterface,應用程序編程接口)追求高性能的特點。
[0003]相關技術采用了直接從數據庫查詢和多次從SolH搜索應用服務器)搜索引擎查詢兩種方案,后者雖然避免了直接對數據庫的操作,但多次訪問Solr搜索引擎也會導致性能降低的問題。
【發明內容】
[0004]本發明實施例提供了一種數據查詢的方法、服務器及終端,不僅避免了對數據庫的直接操作,還提高數據查詢效率。
[0005]本發明實施例提供了一種業務服務器,包括:
[0006]第一傳輸模塊,用于接收到終端的查詢請求消后,將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器;
[0007]第二傳輸模塊,用于接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。
[0008]本實施例的業務服務器避免了對數據庫的直接操作,還提高數據查詢效率。
[0009]可選地,所述業務服務器還可以包括:
[0010]獲取模塊,用于從所述待查詢數據中獲取多項查詢關鍵數據;
[0011]封裝模塊,用于將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述第一傳輸模塊;
[0012]所述第一傳輸模塊,用于將所述查詢列表發送給指定搜索服務器。
[0013]本實施例的業務服務器僅將查詢關鍵數據發給搜索服務器,只把有價值的字段傳輸給搜索服務器,可以減少傳輸冗余字段。
[0014]可選地,所述業務服務器還可以包括:
[0015]刪除模塊,用于將所述指定搜索服務器返回的所述查詢結果中的指定字段刪除,將刪除后的所述查詢結果發送給所述第二傳輸模塊,由所述第二傳輸模塊發送給所述終端。
[0016]本實施例中,業務服務器將返回給客戶端的數據中,去掉不必要的字段,這樣可以減少傳輸數據的大小。
[0017]可選地,所述業務服務器還可以包括:
[0018]封裝模塊,用于利用指定格式對所述查詢結果進行封裝,將封裝后的查詢結果發送給所述第二傳輸模塊,由所述第二傳輸模塊發送給所述終端。
[0019]本實施例的業務服務器對多項查詢結果進行封裝,一次性發送給終端,這樣可以減少傳輸次數。
[0020]可選地,所述業務服務器還可以包括:
[0021 ]壓縮模塊,用于對所述指定搜索服務器返回的所述查詢結果進行壓縮處理,將壓縮處理后的查詢結果發送給所述第二傳輸模塊,由所述第二傳輸模塊發送給所述終端。
[0022]本實施例的所述業務服務器對查詢結果進行壓縮處理,這樣可以減少傳輸時數據包的大小。
[0023]本發明實施例提供一種數據查詢的方法,包括:
[0024]業務服務器接收到終端的查詢請求消息后,將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器;
[0025]所述業務服務器接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。
[0026]本實施例的方法避免了對數據庫的直接操作,還提高數據查詢效率。
[0027]可選地,所述業務服務器將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器,包括:
[0028]所述業務服務器從所述待查詢數據中獲取多項查詢關鍵數據,將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述指定搜索服務器。
[0029]本實施例的方法僅將查詢關鍵數據發給搜索服務器,只把有價值的字段傳輸給搜索服務器,可以減少傳輸冗余字段。
[0030]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0031]所述業務服務器將所述指定搜索服務器返回的所述查詢結果中的指定字段刪除。
[0032]本實施例中,業務服務器將返回給客戶端的數據中,去掉不必要的字段,這樣可以減少傳輸數據的大小。
[0033]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0034]所述業務服務器利用指定格式對所述查詢結果進行封裝。
[0035]本實施例的業務服務器對多項查詢結果進行封裝,一次性發送給終端,這樣可以減少傳輸次數。
[0036]可選地,所述指定格式包括:Java腳本對象表示法格式,該格式易于人的閱讀和編寫,同時也易于解析。
[0037]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0038]所述業務服務器對所述查詢結果進行壓縮處理。
[0039]本實施例中,所述業務服務器對查詢結果進行壓縮處理,這樣可以減少傳輸時數據包的大小。
[0040]本發明實施例還提供一種搜索服務器,包括:
[0041 ]接收模塊,用于接收業務服務器發送的待查詢數據的信息;
[0042]查詢模塊,用于根據所述待查詢數據的信息進行查詢;
[0043]發送模塊,用于將查詢結果一次性發送給所述業務服務器。
[0044]本實施例通過第三方搜索服務器查詢數據,可以避免對數據庫的直接操作。
[0045]可選地,所述搜索服務器還包括封裝模塊,
[0046]所述接收模塊,接收所述業務服務器發送的多項待查詢數據的信息包括:接收所述業務服務器發送的包括多項查詢關鍵數據的查詢列表;
[0047]所述查詢模塊,用于根據所述多項查詢關鍵數據進行查詢;
[0048]所述封裝模塊,用于將多項查詢結果封裝為查詢結果列表;
[0049]所述發送模塊,用于將所述查詢結果列表發送給所述業務服務器。
[0050]本實施例中,搜索服務器接收多項查詢請求,對多項查詢結果進行封裝,一次性發給業務服務器,可以減少傳輸次數。
[0051]可選地,所述搜索服務器還包括:
[0052]建立模塊,用于建立索引和定時任務;
[0053]獲取模塊,用于根據所述定時任務定時從數據庫中獲取與所述索引相關的數據;
[0054]存儲模塊,用于保存所述獲取模塊獲取的數據。
[0055]本實施例中,搜索服務器可以定時獲取數據庫中的相關數據,可以及時更新數據。
[0056]本發明實施例還提供一種數據查詢的方法,包括:
[0057]搜索服務器接收業務服務器發送的待查詢數據的信息;
[0058]所述搜索服務器根據所述待查詢數據的信息進行查詢;
[0059]所述搜索服務器將查詢結果一次性發送給所述業務服務器。
[0060]本實施例的方法,通過第三方搜索服務器查詢數據,可以避免對數據庫的直接操作。
[0061]可選地,所述搜索服務器接收所述業務服務器發送的多項待查詢數據的信息,包括:接收所述業務服務器發送的包括多項查詢關鍵數據的查詢列表;
[0062]所述搜索服務器根據所述多項查詢關鍵數據進行查詢,將多項查詢結果封裝為查詢結果列表,將所述查詢結果列表發送給所述業務服務器。
[0063]本實施例中,搜索服務器接收多項查詢請求,對多項查詢結果進行封裝,一次性發給業務服務器,可以減少傳輸次數。
[0064]可選地,所述方法還包括:
[0065]所述搜索服務器建立索引和定時任務;
[0066]所述搜索服務器根據所述定時任務定時從數據庫中獲取與所述索引相關的數據,
并保存。
[0067]本實施例中,搜索服務器可以定時獲取數據庫中的相關數據,可以及時更新數據。
[0068]本發明實施例還提供一種終端,包括:
[0069]發送模塊,用于向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;
[0070]接收模塊,用于接收所述業務服務器返回的查詢結果。
[0071]可選地,所述終端還可包括:
[0072]封裝模塊,用于利用指定格式將多項待查詢數據進行封裝;
[0073]所述發送模塊,用于通過所述查詢請求消息將封裝后的待查詢數據發送給所述業務服務器。
[0074]本實施例的終端一次性向業務服務器發起查詢多項數據的請求,可以減少傳輸次數。
[0075]本發明實施例還提供一種數據查詢的方法,包括:
[0076]終端向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;
[0077]所述終端接收所述業務服務器返回的查詢結果。
[0078]可選地,所述終端向業務服務器發送查詢請求消息,包括:
[0079]所述終端利用指定格式對多項待查詢數據進行封裝;
[0080]所述終端通過所述查詢請求消息將封裝后的待查詢數據發送給業務服務器。
[0081]本實施例的終端一次性向業務服務器發起查詢多項數據的請求,可以減少傳輸次數。
[0082]可選地,所述指定格式包括:Java腳本對象表示法格式,該格式易于人的閱讀和編寫,同時也易于解析。
[0083]綜上,本發明實施例提供了一種數據查詢的方法、服務器及終端,不僅避免了對數據庫的直接操作,還提高數據查詢效率。
【附圖說明】
[0084]附圖用來提供對本發明技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本發明的技術方案,并不構成對本發明技術方案的限制。
[0085]圖1為實現本發明各個實施例的移動終端一個可選的硬件結構示意圖;
[0086]圖2為如圖1所示的移動終端的無線通信系統示意圖;
[0087]圖3為本發明實施例的終端側的數據查詢的方法的流程圖;
[0088]圖4為本發明實施例的服務器側的一種數據查詢的方法的流程圖;
[0089]圖5為本發明實施例的搜索服務器側的一種數據查詢的方法的流程圖;
[0090]圖6為本發明實施例一的數據查詢的方法的流程圖;
[0091 ]圖7為本發明實施例的一種服務器的示意圖;
[0092]圖8為本發明實施例的搜索服務器的示意圖;
[0093]圖9為本發明實施例的終端的示意圖。
[0094]本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0095]應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0096]現在將參考附圖描述實現本發明各個實施例的移動終端。在后續的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
[0097]移動終端可以以各種形式來實施。例如,本發明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數字廣播接收器、PDA(個人數字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數字TV、臺式計算機等等的固定終端。下面,假設終端是移動終端。然而,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據本發明的實施方式的構造也能夠應用于固定類型的終端。
[0098]圖1為實現本發明各個實施例的移動終端一個可選的硬件結構示意圖。
[0099]移動終端100可以包括無線通信單元110、A/V(音頻/視頻)輸入單元120、用戶輸入單元130、感測單元140、輸出單元150、存儲器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動終端,但是應理解的是,并不要求實施所有示出的組件。可以替代地實施更多或更少的組件。將在下面詳細描述移動終端的元件。
[0100]無線通信單元110通常包括一個或多個組件,其允許移動終端100與無線通信系統或網絡之間的無線電通信。例如,無線通信單元可以包括廣播接收模塊111、移動通信模塊112、無線互聯網模塊113、短程通信模塊114和位置信息模塊115中的至少一個。
[0101]廣播接收模塊111經由廣播信道從外部廣播管理服務器接收廣播信號和/或廣播相關信息。廣播信道可以包括衛星信道和/或地面信道。廣播管理服務器可以是生成并發送廣播信號和/或廣播相關信息的服務器或者接收之前生成的廣播信號和/或廣播相關信息并且將其發送給終端的服務器。廣播信號可以包括TV廣播信號、無線電廣播信號、數據廣播信號等等。而且,廣播信號可以進一步包括與TV或無線電廣播信號組合的廣播信號。廣播相關信息也可以經由移動通信網絡提供,并且在該情況下,廣播相關信息可以由移動通信模塊112來接收。廣播信號可以以各種形式存在,例如,其可以以數字多媒體廣播(DMB)的電子節目指南(EPG)、數字視頻廣播手持(DVB-H)的電子服務指南(ESG)等等的形式而存在。廣播接收模塊111可以通過使用各種類型的廣播系統接收信號廣播。特別地,廣播接收模塊111可以通過使用諸如多媒體廣播-地面(DMB-T)、數字多媒體廣播-衛星(DMB-S)、數字視頻廣播-手持(DVB-H),前向鏈路媒體(MediaFLO?)的數據廣播系統、地面數字廣播綜合服務(ISDB-T)等等的數字廣播系統接收數字廣播。廣播接收模塊111可以被構造為適合提供廣播信號的各種廣播系統以及上述數字廣播系統。經由廣播接收模塊111接收的廣播信號和/或廣播相關信息可以存儲在存儲器160(或者其它類型的存儲介質)中。
[0102]移動通信模塊112將無線電信號發送到基站(例如,接入點、節點B等等)、外部終端以及服務器中的至少一個和/或從其接收無線電信號。這樣的無線電信號可以包括語音通話信號、視頻通話信號、或者根據文本和/或多媒體消息發送和/或接收的各種類型的數據。
[0103]無線互聯網模塊113支持移動終端的無線互聯網接入。該模塊可以內部或外部地耦接到終端。該模塊所涉及的無線互聯網接入技術可以包括WLAN(無線LAN)(W1-Fi)、Wibro(無線寬帶)、Wimax(全球微波互聯接入)、HSDPA(高速下行鏈路分組接入)等等。
[0104]短程通信模塊114是用于支持短程通信的模塊。短程通信技術的一些示例包括藍牙?、射頻識別(RFID)、紅外數據協會(IrDA)、超寬帶(UWB)、紫蜂?等等。
[0105]位置信息模塊115是用于檢查或獲取移動終端的位置信息的模塊。位置信息模塊的典型示例是GPS(全球定位系統)。根據當前的技術,GPS模塊115計算來自三個或更多衛星的距離信息和準確的時間信息并且對于計算的信息應用三角測量法,從而根據經度、瑋度和高度準確地計算三維當前位置信息。當前,用于計算位置和時間信息的方法使用三顆衛星并且通過使用另外的一顆衛星校正計算出的位置和時間信息的誤差。此外,GPS模塊115能夠通過實時地連續計算當前位置信息來計算速度信息。
[0106]A/V輸入單元120用于接收音頻或視頻信號。A/V輸入單元120可以包括相機121和麥克風1220,相機121對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置獲得的靜態圖片或視頻的圖像數據進行處理。處理后的圖像幀可以顯示在顯示單元151上。經相機121處理后的圖像幀可以存儲在存儲器160(或其它存儲介質)中或者經由無線通信單元110進行發送,可以根據移動終端的構造提供兩個或更多相機1210。麥克風122可以在電話通話模式、記錄模式、語音識別模式等等運行模式中經由麥克風接收聲音(音頻數據),并且能夠將這樣的聲音處理為音頻數據。處理后的音頻(語音)數據可以在電話通話模式的情況下轉換為可經由移動通信模塊112發送到移動通信基站的格式輸出。麥克風122可以實施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發送音頻信號的過程中產生的噪聲或者干擾。
[0107]用戶輸入單元130可以根據用戶輸入的命令生成鍵輸入數據以控制移動終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋仔片、觸摸板(例如,檢測由于被接觸而導致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當觸摸板以層的形式疊加在顯示單元151上時,可以形成觸摸屏。
[0108]感測單元140檢測移動終端100的當前狀態,(例如,移動終端100的打開或關閉狀態)、移動終端100的位置、用戶對于移動終端100的接觸(S卩,觸摸輸入)的有無、移動終端100的取向、移動終端100的加速或減速移動和方向等等,并且生成用于控制移動終端100的操作的命令或信號。例如,當移動終端100實施為滑動型移動電話時,感測單元140可以感測該滑動型電話是打開還是關閉。另外,感測單元140能夠檢測電源單元190是否提供電力或者接口單元170是否與外部裝置耦接。感測單元140可以包括接近傳感器1410將在下面結合觸摸屏來對此進行描述。
[0109]接口單元170用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機端口、外部電源(或電池充電器)端口、有線或無線數據端口、存儲卡端口、用于連接具有識別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機端口等等。識別模塊可以是存儲用于驗證用戶使用移動終端100的各種信息并且可以包括用戶識別模塊(UIM)、客戶識別模塊(SIM)、通用客戶識別模塊(USM)等等。另外,具有識別模塊的裝置(下面稱為"識別裝置")可以采取智能卡的形式,因此,識別裝置可以經由端口或其它連接裝置與移動終端100連接。接口單元170可以用于接收來自外部裝置的輸入(例如,數據信息、電力等等)并且將接收到的輸入傳輸到移動終端100內的一個或多個元件或者可以用于在移動終端和外部裝置之間傳輸數據。
[0110]另外,當移動終端100與外部底座連接時,接口單元170可以用作允許通過其將電力從底座提供到移動終端100的路徑或者可以用作允許從底座輸入的各種命令信號通過其傳輸到移動終端的路徑。從底座輸入的各種命令信號或電力可以用作用于識別移動終端是否準確地安裝在底座上的信號。輸出單元150被構造為以視覺、音頻和/或觸覺方式提供輸出信號(例如,音頻信號、視頻信號、警報信號、振動信號等等)。輸出單元150可以包括顯示單元151、音頻輸出模塊152、警報單元153等等。
[0111]顯示單元151可以顯示在移動終端100中處理的信息。例如,當移動終端100處于電話通話模式時,顯示單元151可以顯示與通話或其它通信(例如,文本消息收發、多媒體文件下載等等)相關的用戶界面(UI)或圖形用戶界面(GUI)。當移動終端100處于視頻通話模式或者圖像捕獲模式時,顯示單元151可以顯示捕獲的圖像和/或接收的圖像、示出視頻或圖像以及相關功能的UI或GUI等等。
[0112]同時,當顯示單元151和觸摸板以層的形式彼此疊加以形成觸摸屏時,顯示單元151可以用作輸入裝置和輸出裝置。顯示單元151可以包括液晶顯示器(LCD)、薄膜晶體管IXD(TFT-1XD)、有機發光二極管(OLED)顯示器、柔性顯示器、三維(3D)顯示器等等中的至少一種。這些顯示器中的一些可以被構造為透明狀以允許用戶從外部觀看,這可以稱為透明顯示器,典型的透明顯示器可以例如為TOLED(透明有機發光二極管)顯示器等等。根據特定想要的實施方式,移動終端100可以包括兩個或更多顯示單元(或其它顯示裝置),例如,移動終端可以包括外部顯示單元(未示出)和內部顯示單元(未示出)。觸摸屏可用于檢測觸摸輸入壓力以及觸摸輸入位置和觸摸輸入面積。
[0113]音頻輸出模塊152可以在移動終端處于呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將無線通信單元110接收的或者在存儲器160中存儲的音頻數據轉換音頻信號并且輸出為聲音。而且,音頻輸出模塊152可以提供與移動終端100執行的特定功能相關的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出模塊152可以包括揚聲器、蜂鳴器等等。
[0114]警報單元153可以提供輸出以將事件的發生通知給移動終端100。典型的事件可以包括呼叫接收、消息接收、鍵信號輸入、觸摸輸入等等。除了音頻或視頻輸出之外,警報單元153可以以不同的方式提供輸出以通知事件的發生。例如,警報單元153可以以振動的形式提供輸出,當接收到呼叫、消息或一些其它進入通信(incomingcommunicat1n)時,警報單元153可以提供觸覺輸出(S卩,振動)以將其通知給用戶。通過提供這樣的觸覺輸出,即使在用戶的移動電話處于用戶的口袋中時,用戶也能夠識別出各種事件的發生。警報單元153也可以經由顯示單元151或音頻輸出模塊152提供通知事件的發生的輸出。
[0115]存儲器160可以存儲由控制器180執行的處理和控制操作的軟件程序等等,或者可以暫時地存儲己經輸出或將要輸出的數據(例如,電話簿、消息、靜態圖像、視頻等等)。而且,存儲器160可以存儲關于當觸摸施加到觸摸屏時輸出的各種方式的振動和音頻信號的數據。
[0116]存儲器160可以包括至少一種類型的存儲介質,所述存儲介質包括閃存、硬盤、多媒體卡、卡型存儲器(例如,SD或DX存儲器等等)、隨機訪問存儲器(RAM)、靜態隨機訪問存儲器(SRAM)、只讀存儲器(R0M)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁性存儲器、磁盤、光盤等等。而且,移動終端100可以與通過網絡連接執行存儲器160的存儲功能的網絡存儲裝置協作。
[0117]控制器180通常控制移動終端的總體操作。例如,控制器180執行與語音通話、數據通信、視頻通話等等相關的控制和處理。另外,控制器180可以包括用于再現(或回放)多媒體數據的多媒體模塊1810,多媒體模塊1810可以構造在控制器180內,或者可以構造為與控制器180分離。控制器180可以執行模式識別處理,以將在觸摸屏上執行的手寫輸入或者圖片繪制輸入識別為字符或圖像。
[0118]電源單元190在控制器180的控制下接收外部電力或內部電力并且提供操作各元件和組件所需的適當的電力。
[0119]這里描述的各種實施方式可以以使用例如計算機軟件、硬件或其任何組合的計算機可讀介質來實施。對于硬件實施,這里描述的實施方式可以通過使用特定用途集成電路(ASIC)、數字信號處理器(DSP)、數字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設計為執行這里描述的功能的電子單元中的至少一種來實施,在一些情況下,這樣的實施方式可以在控制器180中實施。對于軟件實施,諸如過程或功能的實施方式可以與允許執行至少一種功能或操作的單獨的軟件模塊來實施。軟件代碼可以由以任何適當的編程語言編寫的軟件應用程序(或程序)來實施,軟件代碼可以存儲在存儲器160中并且由控制器180執行。
[0120]至此,己經按照其功能描述了移動終端。下面,為了簡要起見,將描述諸如折疊型、直板型、擺動型、滑動型移動終端等等的各種類型的移動終端中的滑動型移動終端作為示例。因此,本發明能夠應用于任何類型的移動終端,并且不限于滑動型移動終端。
[0121]如圖1中所示的移動終端100可以被構造為利用經由幀或分組發送數據的諸如有線和無線通信系統以及基于衛星的通信系統來操作。
[0122]現在將參考圖2描述其中根據本發明的移動終端能夠操作的通信系統。
[0123]這樣的通信系統可以使用不同的空中接口和/或物理層。例如,由通信系統使用的空中接口包括例如頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA)和通用移動通信系統(UMTS)(特別地,長期演進(LTE))、全球移動通信系統(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信系統,但是這樣的教導同樣適用于其它類型的系統。
[0124]參考圖2,⑶MA無線通信系統可以包括多個移動終端100、多個基站(BS)270、基站控制器(BSC)275和移動交換中心(MSCUSOJSCSSO被構造為與公共電話交換網絡(PSTN)290形成接口。MSC280還被構造為與可以經由回程線路耦接到基站270的BSC275形成接口。回程線路可以根據若干己知的接口中的任一種來構造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統可以包括多個BSC2750。
[0125]每個BS270可以服務一個或多個分區(或區域),由多向天線或指向特定方向的天線覆蓋的每個分區放射狀地遠離BS270。或者,每個分區可以由用于分集接收的兩個或更多天線覆蓋。每個BS270可以被構造為支持多個頻率分配,并且每個頻率分配具有特定頻譜(例如,1.25MHz,5MHz 等等)。
[0126]分區與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發器子系統(BTS)或者其它等效術語。在這樣的情況下,術語“基站”可以用于籠統地表示單個BSC275和至少一個BS270。基站也可以被稱為“蜂窩站”。或者,特定BS270的各分區可以被稱為多個蜂窩站。
[0127]如圖2中所示,廣播發射器(BT)295將廣播信號發送給在系統內操作的移動終端100。如圖1中所示的廣播接收模塊111被設置在移動終端100處以接收由BT295發送的廣播信號。在圖2中,示出了幾個全球定位系統(GPS)衛星300。衛星300幫助定位多個移動終端100中的至少一個。
[0128]在圖2中,描繪了多個衛星300,但是理解的是,可以利用任何數目的衛星獲得有用的定位信息。如圖1中所示的GPS模塊115通常被構造為與衛星300配合以獲得想要的定位信息。替代GPS跟蹤技術或者在GPS跟蹤技術之外,可以使用可以跟蹤移動終端的位置的其它技術。另外,至少一個GPS衛星300可以選擇性地或者額外地處理衛星DMB傳輸。
[0129]作為無線通信系統的一個典型操作,BS270接收來自各種移動終端100的反向鏈路信號。移動終端100通常參與通話、消息收發和其它類型的通信。特定基站270接收的每個反向鏈路信號被在特定BS270內進行處理。獲得的數據被轉發給相關的BSC275 ASC提供通話資源分配和包括BS270之間的軟切換過程的協調的移動管理功能。BSC275還將接收到的數據路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應地控制BS270以將正向鏈路信號發送到移動終端100。
[0130]圖3為本發明實施例的終端側的數據查詢的方法的流程圖,如圖3所示,本實施例的方法包括:
[0131 ]步驟11、終端向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;
[0132]步驟12、終端接收所述業務服務器返回的查詢結果。
[0133]可選地,終端可以利用指定格式對多項待查詢數據進行封裝;通過查詢請求消息將封裝后的查詢數據發送給業務服務器。
[0134]本實施例中,客戶端(終端,例如手機)把所有需要查詢的數據以指定格式一次性傳給業務服務器,減少傳輸次數。
[0135]本方案適用于對復雜數據進行批量查詢,比如應用中心,獲取應用的可更新列表,需要把手機端所有應用信息上傳到業務服務器,業務服務器對數據進行比較,返回所有可更新應用的信息給客戶端。
[0136]本實施例中,采用Json(JavaScript Object Notat1n,Java腳本對象表示法)的格式來封裝待查詢數據。JSON是一種輕量級的數據交換方式,通過名稱/值的方式來保存數據,易于人的閱讀和編寫,同時也易于解析。
[0137]所述指定格式可以是客戶端與業務服務器約定的可用于封裝所述查詢數據的任何格式,例如:直接通過字符串傳輸的方式。
[0138]本實施例中,終端還可以接收業務服務器返回的終端所請求的所有待查詢的查詢結果。查詢結果也是一次性接收的,減少傳輸次數。
[0139]圖4為本發明實施例的服務器側的一種數據查詢的方法的流程圖,如圖4所示,本實施例的方法包括:
[0140]步驟21、業務服務器接收到終端的查詢請求消息后,將所述查詢請求消息中的多項待查詢數據的信息發送給指定搜索服務器;
[0141]步驟22、業務服務器接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。
[0142]當大量數據直接操作數據庫時,會導致查詢速度變慢,甚至數據庫崩潰等問題。為了避免直接操作數據庫,業務服務器將查詢請求發送給第三方搜索引擎(即上述的搜索服務器),從第三方搜索引擎上查詢相關數據,這樣就可以避免直接訪問數據庫。
[0143]本實施例中,業務服務器將待查詢數據一次性發送給第三方搜索引擎,這樣可以減少訪問第三方搜索引擎的次數。
[0144]例如,業務服務器獲取到客戶端傳來的Json數據,直接從Solr搜索引擎中進行比較查詢。以前的方案是,業務服務器解析Json數據,每解析一條,就從Solr搜索引擎中查詢,看該條數據有沒有可更新信息,這樣頻繁查詢Solr搜索引擎,并沒有解決提高效率的問題。本方案在這方面進行改進,在對Json數據解析時,把所有待查詢的應用信息封裝在Map(列表)中,以包名為Key(關鍵)值,版本號等信息為value值。同時,不再采用單條數據訪問Solr搜索引擎的方案,而是把Map中的Key值封裝成列表,只訪問一次Solr搜索引擎,便可得到所有可更新信息的列表。
[0145]可選地,所述業務服務器從所述待查詢數據中獲取多項查詢關鍵數據,將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述指定搜索服務器。這樣,可以減少傳輸冗余字段,只把有價值的字段傳輸給搜索引擎,如應用的包名。
[0146]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0147]所述業務服務器將所述指定搜索服務器返回的所述查詢結果中的指定字段刪除。本實施例中,業務服務器將返回給客戶端的數據中,去掉不必要的字段,這樣可以減少傳輸數據的大小。由于要返回給客戶端的信息往往是多條可更新數據,數據量多,導致傳輸慢,該方案對接口返回的數據進行精簡,去掉不需要的字段,以保證傳輸速度。
[0148]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0149]所述業務服務器利用指定格式對所述查詢結果進行封裝。
[0150]其中,所述指定格式包括:Java腳本對象表示法格式。
[0151]可選地,所述業務服務器將所述查詢結果發送給所述終端之前,還包括:
[0152]所述業務服務器對所述查詢結果進行壓縮處理。例如,業務服務器對傳輸的數據進行GZIP壓縮處理,可以減少傳輸時數據包的大小。
[0153]圖5為本發明實施例的搜索服務器側的一種數據查詢的方法的流程圖,如圖5所示,本實施例的方法包括:
[0154]步驟31、搜索服務器接收業務服務器發送的待查詢數據的信息;
[0155]步驟32、搜索服務器根據所述待查詢數據的信息進行查詢;
[0156]步驟33、搜索服務器將查詢結果一次性發送給所述業務服務器。
[0157]本實施例的方法,業務服務器借助第三方搜索引擎,從第三方搜索引擎上查詢相關數據,這樣就可以避免直接訪問數據庫,避免當大量數據直接操作數據庫時,導致查詢速度變慢,甚至數據庫崩潰等問題。
[0158]可選地,所述搜索服務器還可以建立索引和定時任務;搜索服務器根據所述定時任務定時從數據庫中獲取與所述索引相關的數據,并保存。
[0159]例如,在Solr搜索引擎上建立索引和定時任務,定時把數據庫中索引相關的數據保存在Solr搜索引擎中,可以及時更新Solr搜索引擎中的數據,保證Solr搜索引擎中的數據與數據庫中的數據的一致性。
[0160]本實施例中,服務器把key(關鍵)值封裝成列表,在Solr搜索引擎中查詢,Solr搜索引擎把查詢結果以列表的形式返回,這樣可以避免多次訪問Solr搜索引擎,不會給Solr搜索引擎帶來太大的負擔。
[0161]本實施例的方法適用于需要從數據庫獲取大量數據的情況,以下以幾個應用示例對本申請的一種數據查詢的方法進行詳細的說明。
[0162]應用示例一
[0163]如圖6所示,包括以下步驟:
[0164]步驟601、客戶端(例如手機)收集本機裝載的所有的應用信息;
[0165]比如,手機上裝載了η個應用,手機收集本機裝載的所有的應用信息,包括:
[0166]應用I的包名、應用I的版本號、應用I的描述信息、應用I的簽名;
[0167]應用2的包名、應用2的版本號、應用2的描述信息、應用2的簽名;
[0168]應用3的包名、應用3的版本號、應用3的描述信息、應用2的簽名;
[0169]……
[0170]應用η的包名、應用η的版本號、應用η的描述信息、應用2的簽名。
[0171]通過包名和版本號可以確定上報應用的版本,同時可以判斷出有沒有最新版本。簽名用來檢驗上報的應用和數據庫中的應用簽名是否一致,只對簽名一致的應用進行可更新操作,若不一致,將有其他機制進行處理,不在本方案的考慮范圍。
[0172]步驟602、手機采用Json格式對本機上所有的應用信息進行封裝,將封裝后的待查詢的應用信息發送給服務端。
[0173]本實施例中的JSON的語法規則如下:
[0174]1、使用[]來保存數組,可以存在多個數組;
[0175]2、使用{}來保存對象,一個數組中可以存在多個對象;
[0176]3、數據之間用逗號隔開;
[0177]4、所有的數據,通過名稱和值的方式進行保存。
[0178]步驟611、服務端調用接口,接收客戶端發送的待查詢的數據包;
[0179]步驟612、服務端進行Json解析,將解析出的數據封裝成列表,以包名為key值;
[0180]每個應用都有唯一的包名,通過包名可以確定是哪個應用,例如:
[0181 ]應用商店的包名:cn.nubia.neostore ;
[0182]中控程序的包名:com.nubia.triff iccontroIler。
[0183]因為包名和應用是一對一的關系,比如:通過應用商店,就能確定它的包名是cn.nubia.neostore;通過包名cn.nubia, neostore,就能確定這個應用是應用商店,所以可以將包名作為key值。
[0184]本實施例中,業務服務器進行Json解析,獲取應用i,把應用i的相關數據封裝在Map中,以包名為key值;
[0185]判斷i是否小于Json數組的大小,如i小于Json數組的大小,則令i = i + l,再進行Json解析;如i不小于Json數組的大小,則獲取包名列表(即Map中的Key的集合),然后訪問Solr搜索引擎,將包名列表發送給Solr搜索引擎。
[0? 86] Map相當于一個容器,可以存放數據,它的格式是key/value。
[0187]比如:
[0188]應用I的包名為packageNamel的數據,把版本號(vl.0.1)和簽名(SDFASFGB1243654)存放到一個對象Al中。可以以包名為key值,把這個Al的對象存放在Map中。例如:
[0189]map.put(“packageNamel”,Al);
[0190]map.put(“packageName2”,A3);
[0191]……
[0192]Map自帶方法,可以獲取到key的集合:
[0193]Set<String>keys =map.keySet()。
[0194]步驟613、業務服務器調用Solr搜索引擎進行查詢,從Solr搜索引擎獲取到可更新數據的列表;
[0195]Solr搜索引擎接收到服務端的包名列表后,遍歷包名列表,獲取應用可更新數據,將應用可更新信息封裝成列表,返回給所述服務器。
[0196]Solr搜索引擎還可以建立索引和定時任務。
[0197]Solr搜索引擎建立索引,這樣可以按照數據庫的格式把想要的數據同步到Solr搜索引擎中,可以及時更新Solr搜索引擎的數據。
[0198]本實施例的定時任務:在Iinux下通過命令的方式,在約定好的時間,執行建立索引的命令。
[0199]建立索引的命令可以包括:
[0200]1、增量索引:對比數據庫和搜索引擎中的數據,當數據在數據庫中有更高版本的時候,才對改數據進行同步
[0201]2、全量索引:不需要對比數據庫和搜索引擎的數據,把數據庫中所有的最新版本的應用信息,同步到搜索引擎中去。
[0202]步驟614、業務服務器向客戶端返回獲取到可更新數據。
[0203]業務服務器獲取到Solr搜索引擎返回的應用可更新數據列表,刪除列表中不必要的字段。
[0204]業務服務器獲取到的可更新應用的信息可以包括:應用ID,應用名稱,應用的版本ID版本號,包名,簡介,詳細介紹,創建時間,創建者,最近更新時間,最近更新者,星級,下載量,訪問量,下載地址,市場來源等。
[0205]其中,在可更新列表需要用到的字段有:應用ID,應用名稱,應用的版本ID,版本號,包名,簡介,星級。其他字段,在該接口返回的數據中都可以刪除。
[0206]業務服務端向客戶端返回獲取到可更新數據之前,還可以對所述可更新數據進行壓縮處理。
[0207]步驟603、客戶端獲取到可更新數據。
[0208]應用示例二
[0209]本應用示例為獲取朋友圈的信息。客戶端需要一次性獲取到很多條朋友圈的信息,包括其中的評論。業務服務器可以通過索引的方式,把數據庫中朋友圈的信息同步到第三搜索引擎中。客戶端調用接口,請求獲取朋友圈信息的時候,業務服務器直接從第三搜索引擎中獲取相應數據,返回給客戶端,避免直接從數據庫中進行操作。包括以下步驟:
[0210]步驟701、手機向業務服務器發送獲取微信朋友圈信息的請求;
[0211]所述獲取微信朋友圈信息的請求攜帶用戶標識。
[0212]步驟702、業務服務器接收到請求后,將用戶標識發送給第三搜索服務器;
[0213]比如,手機端調用獲取朋友圈的接口user/get_friends。訪問的地址為:http: / /nubia.XX.com.cn?user_id = 7152&time = 12312212212,其中,user_id為用戶標識的字段。[Ο214] 業務服務器的接口118617^1:_;^1611(18接收到客戶端的訪問,可以獲取到地址中所帶的參數user_id,time等。
[0215]業務服務器獲取到請求信息中的userjd字段,把該字段傳給第三方搜索服務器,讀取該用戶的朋友圈信息。
[0216]步驟703、第三搜索服務器接收到請求后,查詢對應用戶的微信朋友圈信息,將查詢結果返回給業務服務器。
[0217]第三搜索服務器查詢出的微信朋友圈信息,例如包括:
[0218]朋友1:用戶標識(uSer_id),昵稱,朋友圈信息ID,朋友圈內容,評論列表;
[0219]朋友2:用戶標識(uSer_id),昵稱,朋友圈信息ID,朋友圈內容,評論列表;
[0220]……
[0221]其中,評論列表包括:
[0222]評論id,評論內容,評論者Id(user_id)......等。
[0223]搜索引擎把該用戶下前η條朋友圈信息封裝起來,傳給業務服務器。其中,η具體多少條,可以自定義,可以按時間進行降序排列,不在本方案考慮范圍。
[0224]搜索引擎返回的列表,以朋友的用戶標識和朋友圈信息的ID為key,信息的內容和評論內容為value值。
[0225]比如:要查看用戶A的朋友圈,用戶A的朋友圈有朋友B,朋友C分別發送了兩條朋友圈信息。
[0226]列表的內容:
[0227]map.put( “朋友Bji友B發的第一條信息ID”,“信息內容,評論列表”)
[0228]map.put( “朋友Bji友B發的第二條信息ID”,“信息內容,評論列表”)
[0229]map.put( “朋友Cji友C發的第一條信息ID”,“信息內容,評論列表”)
[0230]map.put( “朋友Cji友C發的第二條信息ID”,“信息內容,評論列表”)
[0231 ]業務服務器可以獲取到封裝好的map集合。
[0232]根據map中的key值,讀取每一條朋友圈信息的內容和評論列表。
[0233]步驟704、業務服務器接收到第三方搜索服務器的查詢結果后,將查詢結果返回給客戶端。
[0234]業務服務器可以朋友圈信息封裝成JSON的形式,返回給手機端。例如,業務服務器讀取到搜索引擎返回的map集合后,讀取里面的每一條記錄。把記錄中的值封裝到JSON中返回給手機端。
[0235]圖7為本發明實施例的一種業務服務器的示意圖,如圖7所示,本實施例的業務服務器300包括:
[0236]第一傳輸模塊301,用于接收到終端的查詢請求消息后,將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器;
[0237]第二傳輸模塊302,用于接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。
[0238]可選地,業務服務器300還可以包括:
[0239]獲取模塊303,用于從第一傳輸模塊301接收到的多項待查詢數據中獲取多項查詢關鍵數據;
[0240]封裝模塊304,用于將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述第一傳輸模塊;
[0241]第一傳輸模塊301,用于將所述查詢列表發送給指定搜索服務器。
[0242]可選地,業務服務器300還可以包括:
[0243]刪除模塊305,用于將所述指定搜索服務器返回的所述查詢結果中的指定字段刪除,將刪除后的所述查詢結果發送給第二傳輸模塊302,由第二傳輸模塊302發送給所述終端。
[0244]可選地,業務服務器300還可以包括:
[0245]封裝模塊307,用于利用指定格式對所述查詢結果進行封裝,將封裝后的查詢結果發送給所述第二傳輸模塊,由所述第二傳輸模塊發送給所述終端。
[0246]可選地,業務服務器300還可以包括:
[0247]壓縮模塊306,用于對所述指定搜索服務器返回的所述查詢結果進行壓縮處理,將壓縮處理后的查詢結果發送給第二傳輸模塊302,由第二傳輸模塊302發送給所述終端。
[0248]圖8為本發明實施例的搜索服務器的示意圖,如圖8所示,本實施例的搜索服務器400包括:
[0249]接收模塊401,用于接收業務服務器發送的待查詢數據的信息;
[0250]查詢模塊402,用于根據所述待查詢數據的信息進行查詢;
[0251]發送模塊403,用于將查詢結果一次性發送給所述業務服務器。
[0252]可選地,本實施例的搜索服務器400還可以包括:封裝模塊404,
[0253]接收模塊401,接收業務服務器發送的待查詢數據的信息包括:接收業務服務器發送的包括多項查詢關鍵數據的查詢列表;
[0254]查詢模塊402,用于根據所述多項查詢關鍵數據進行查詢;
[0255]封裝模塊404,用于將多項查詢結果封裝為查詢結果列表;
[0256]發送模塊403,用于將所述查詢結果列表發送給所述業務服務器。
[0257]可選地,本實施例的搜索服務器400還可以包括:
[0258]建立模塊405,用于建立索引和定時任務;
[0259]獲取模塊406,用于根據所述定時任務定時從數據庫中獲取與所述索引相關的數據;
[0260]存儲模塊407,用于保存所述獲取模塊獲取的數據。
[0261]圖9為本發明實施例的終端的示意圖,如圖9所示,本實施例的終端500包括:
[0262]發送模塊502,用于向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;
[0263]接收模塊503,用于接收所述業務服務器返回的查詢結果。
[0264]可選地,本實施例的終端500還可以包括:
[0265]封裝模塊501,用于利用指定格式將多項待查詢數據進行封裝;
[0266]發送模塊502,用于通過所述查詢請求消息將封裝后的待查詢數據發送給所述業務服務器。
[0267]需要說明的是,本發明實施例提供的終端500中的封裝模塊501可以設置在圖1中的控制器180中,發送模塊502和接收模塊503可以設置在圖1中的接口單元170中。
[0268]需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0269]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
[0270]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,月艮務器,空調器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0271]以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
【主權項】
1.一種業務服務器,其特征在于,包括: 第一傳輸模塊,用于接收到終端的查詢請求消后,將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器; 第二傳輸模塊,用于接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。2.根據權利要求1所述的業務服務器,其特征在于,還包括: 獲取模塊,用于從所述待查詢數據中獲取多項查詢關鍵數據; 封裝模塊,用于將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述第一傳輸模塊; 所述第一傳輸模塊,用于將所述查詢列表發送給指定搜索服務器。3.一種數據查詢的方法,包括: 業務服務器接收到終端的查詢請求消息后,將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器; 所述業務服務器接收所述指定搜索服務器返回的查詢結果,將所述查詢結果發送給所述終端。4.根據權利要求3所述的方法,其特征在于,所述業務服務器將所述查詢請求消息中的待查詢數據的信息發送給指定搜索服務器,包括: 所述業務服務器從所述待查詢數據中獲取多項查詢關鍵數據,將所述查詢關鍵數據封裝成查詢列表,將所述查詢列表發送給所述指定搜索服務器。5.一種搜索服務器,其特征在于,包括: 接收模塊,用于接收業務服務器發送的待查詢數據的信息; 查詢模塊,用于根據所述待查詢數據的信息進行查詢; 發送模塊,用于將查詢結果一次性發送給所述業務服務器。6.根據權利要求5所述的搜索服務器,其特征在于,還包括封裝模塊, 所述接收模塊,接收所述業務服務器發送的多項待查詢數據的信息包括:接收所述業務服務器發送的包括多項查詢關鍵數據的查詢列表; 所述查詢模塊,用于根據所述多項查詢關鍵數據進行查詢; 所述封裝模塊,用于將多項查詢結果封裝為查詢結果列表; 所述發送模塊,用于將所述查詢結果列表發送給所述業務服務器。7.一種數據查詢的方法,包括: 搜索服務器接收業務服務器發送的待查詢數據的信息; 所述搜索服務器根據所述待查詢數據的信息進行查詢; 所述搜索服務器將查詢結果一次性發送給所述業務服務器。8.根據權利要求7所述的方法,其特征在于, 所述搜索服務器接收所述業務服務器發送的多項待查詢數據的信息,包括:接收所述業務服務器發送的包括多項查詢關鍵數據的查詢列表; 所述搜索服務器根據所述多項查詢關鍵數據進行查詢,將多項查詢結果封裝為查詢結果列表,將所述查詢結果列表發送給所述業務服務器。9.一種終端,其特征在于,包括:發送模塊,用于向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;接收模塊,用于接收所述業務服務器返回的查詢結果。10.一種數據查詢的方法,包括:終端向業務服務器發送查詢請求消息,攜帶待查詢數據的信息;所述終端接收所述業務服務器返回的查詢結果。
【文檔編號】G06F17/30GK106021518SQ201610349310
【公開日】2016年10月12日
【申請日】2016年5月24日
【發明人】彭小春
【申請人】努比亞技術有限公司