欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種處理分頁數(shù)據(jù)的方法、裝置和服務(wù)器與流程

文檔序號:12470165閱讀:401來源:國知局
一種處理分頁數(shù)據(jù)的方法、裝置和服務(wù)器與流程

本發(fā)明實(shí)施例涉及但不限于數(shù)據(jù)處理技術(shù)領(lǐng)域,尤指一種處理分頁數(shù)據(jù)的方法、裝置和服務(wù)器。



背景技術(shù):

服務(wù)器產(chǎn)品最基本的功能就是讀取數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中讀取到的數(shù)據(jù)按照產(chǎn)品需求在客戶端中進(jìn)行展示。而在同一個頁面中需要展示的數(shù)據(jù)往往較多,所以基本都需要用到分頁展示的功能。

分頁展示就好比一本書,一本書的字?jǐn)?shù)有幾十萬,在一頁紙上肯定是顯示不完的,所以要分很多頁進(jìn)行顯示。數(shù)據(jù)庫中的數(shù)據(jù)總是在變化,而用戶的分頁需求是在不同時刻進(jìn)行的,這樣就會導(dǎo)致一個問題,當(dāng)用戶獲取不同頁的數(shù)據(jù)時,如果數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)發(fā)生了變化,那么分頁數(shù)據(jù)很可能會發(fā)生重復(fù)。例如一個數(shù)據(jù)庫包含6條數(shù)據(jù),分別是A、B、C、D、E、F、G,而一頁分頁數(shù)據(jù)展示3條數(shù)據(jù),那么,獲取到的第一頁分頁數(shù)據(jù)是A、B、C。而在獲取第二頁分頁數(shù)據(jù)的時候,數(shù)據(jù)庫中的數(shù)據(jù)剛好已經(jīng)發(fā)生了變化,變成了H、I、A、B、C、D、E、F、G,那么此時第二頁分頁數(shù)據(jù)就會是B、C、D。這樣,用戶看到的數(shù)據(jù)就是A、B、C、B、C、D,其中,B和C即為重復(fù)數(shù)據(jù),這樣會導(dǎo)致用戶體驗(yàn)很差。

目前,有兩種方式可以解決上述分頁數(shù)據(jù)重復(fù)的問題,一種是對返回的分頁數(shù)據(jù)在客戶端進(jìn)行去重;另一種是對返回的分頁數(shù)據(jù)在服務(wù)器中進(jìn)行去重。上述兩種方式均是將返回的分頁數(shù)據(jù)中與之前返回的分頁數(shù)據(jù)進(jìn)行比對,然后再把重復(fù)的數(shù)據(jù)去除,這樣的處理存在獲取分頁數(shù)據(jù)的效率低下,返回的分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量(條數(shù))變少等問題,用戶體驗(yàn)并不理想。



技術(shù)實(shí)現(xiàn)要素:

本申請?zhí)峁┝艘环N處理分頁數(shù)據(jù)的方法、裝置和服務(wù)器,能夠提高獲取分頁數(shù)據(jù)的效率以及最大程度的避免分頁數(shù)據(jù)存在重復(fù)的問題,從而提升用戶體驗(yàn)。

為了達(dá)到本申請目的,本發(fā)明實(shí)施例提供了一種處理分頁數(shù)據(jù)的方法,包括:

服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù);

當(dāng)服務(wù)器接收到來自客戶端的請求時,服務(wù)器判斷搜索引擎是否可用;

當(dāng)服務(wù)器判斷出搜索引擎可用時,服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識列表;

服務(wù)器通過搜索引擎獲取與獲得的第一身份標(biāo)識列表對應(yīng)的第一數(shù)據(jù)列表;

服務(wù)器將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。

可選地,該方法之前還包括:所述服務(wù)器周期性的獲取所述搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引。

可選地,所述服務(wù)器周期性的獲取所述搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引包括:

所述服務(wù)器控制所述搜索引擎間隔預(yù)設(shè)時長對所述數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立所述第一字母索引。

可選地,所述服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)包括:

所述服務(wù)器獲取當(dāng)前周期所述搜索引擎所建立的第一字母索引所包含的所述數(shù)據(jù)庫中的數(shù)據(jù);

所述服務(wù)器按照所述第一預(yù)設(shè)分頁條件對獲得的所述第一字母索引所包含的所述數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取所述多頁第一分頁數(shù)據(jù)。

可選地,在所述獲取所述多頁第一分頁數(shù)據(jù)之后,該方法還包括:

所述服務(wù)器確定分頁處理后的每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識。

可選地,所述服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識列表包括:

所述服務(wù)器根據(jù)所述搜索引擎建立的所述第一字母索引確定與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識;

所述服務(wù)器將確定出的與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識按照與所述第一分頁數(shù)據(jù)所包含的數(shù)據(jù)在所述第一分頁數(shù)據(jù)中的位置順序相同的位置順序排列以組成所述第一身份標(biāo)識列表。

可選地,所述服務(wù)器通過搜索引擎獲取與獲得的第一身份標(biāo)識列表對應(yīng)的第一數(shù)據(jù)列表包括:

所述搜索引擎從與所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的緩存處理器中獲取所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的數(shù)據(jù);

所述服務(wù)器將所述搜索引擎獲得的所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的數(shù)據(jù)按照與所述第一身份標(biāo)識列表所包含的身份標(biāo)識在所述第一身份標(biāo)識列表中的位置順序相同的位置順序排列以組成所述第一數(shù)據(jù)列表。

可選地,當(dāng)所述服務(wù)器判斷出所述搜索引擎不可用時,該方法還包括:

所述服務(wù)器確定與所述請求對應(yīng)的接口在緩存處理器中是否存在所述接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表;

當(dāng)確定出與所述請求對應(yīng)的接口在所述緩存處理器中存在所述接口的所述預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表時,所述服務(wù)器根據(jù)第二預(yù)設(shè)分頁條件從所述第二身份標(biāo)識列表中確定與所述請求對應(yīng)的第三身份標(biāo)識列表;所述服務(wù)器從所述緩存處理器中獲取與所述第三身份標(biāo)識列表對應(yīng)的第第二數(shù)據(jù)列表并將獲得的所述第二數(shù)據(jù)列表發(fā)送給所述客戶端;

當(dāng)確定出與所述請求對應(yīng)的接口在所述緩存處理器中不存在所述接口的所述預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表時,所述服務(wù)器從所述數(shù)據(jù)庫中獲取所述預(yù)設(shè)閾值數(shù)量的與所述請求對應(yīng)的數(shù)據(jù);所述服務(wù)器按照所述第二預(yù)設(shè)分頁條件對所述獲得的所述預(yù)設(shè)閾值數(shù)量的與所述請求對應(yīng)的數(shù)據(jù)進(jìn)行分頁以獲取多頁第二分頁數(shù)據(jù);所述服務(wù)器將與所述請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給所述客戶端。

本發(fā)明實(shí)施例還提供了一種處理分頁數(shù)據(jù)的裝置,包括:分頁模塊、接收模塊、判斷模塊、獲取模塊和發(fā)送模塊;其中,

分頁模塊,用于按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù);

接收模塊,用于當(dāng)接收到來自客戶端的請求時,通知判斷模塊;

判斷模塊,用于判斷搜索引擎是否可用;當(dāng)判斷出搜索引擎可用時,通知獲取模塊;

獲取模塊,用于接收到來自判斷模塊的通知,從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識列表;通過搜索引擎獲取與獲得的第一身份標(biāo)識列表對應(yīng)的第一數(shù)據(jù)列表;

發(fā)送模塊,用于將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。

可選地,所述獲取模塊,還用于周期性的獲取所述搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引。

可選地,所述獲取模塊周期性的獲取所述搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引包括:控制所述搜索引擎間隔預(yù)設(shè)時長對所述數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立所述第一字母索引。

可選地,所述分頁模塊具體用于:

獲取當(dāng)前周期所述搜索引擎所建立的第一字母索引所包含的所述數(shù)據(jù)庫中的數(shù)據(jù);

按照所述第一預(yù)設(shè)分頁條件對獲得的所述第一字母索引所包含的所述數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取所述多頁第一分頁數(shù)據(jù)。

可選地,所述分頁數(shù)據(jù),還用于確定分頁處理后的每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識。

可選地,所述獲取模塊從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識列表包括:

根據(jù)所述搜索引擎建立的所述第一字母索引確定與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識;

將確定出的與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的身份標(biāo)識按照與所述第一分頁數(shù)據(jù)所包含的數(shù)據(jù)在所述第一分頁數(shù)據(jù)中的位置順序相同的位置順序排列以組成所述第一身份標(biāo)識列表。

可選地,所述獲取模塊通過搜索引擎獲取與獲得的第一身份標(biāo)識列表對應(yīng)的第一數(shù)據(jù)列表包括:

所述搜索引擎從與所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的緩存處理器中獲取所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的數(shù)據(jù);

將所述搜索引擎獲得的所述第一身份標(biāo)識列表所包含的身份標(biāo)識對應(yīng)的數(shù)據(jù)按照與所述第一身份標(biāo)識列表所包含的身份標(biāo)識在所述第一身份標(biāo)識列表中的位置順序相同的位置順序排列以組成所述第一數(shù)據(jù)列表。

可選地,該裝置還包括處理模塊;

所述判斷模塊,還用于當(dāng)判斷出搜索引擎不可用時,通知所述處理模塊;相應(yīng)地,

所述處理模塊,用于接收到來自所述判斷模塊的通知,確定與所述請求對應(yīng)的接口在緩存處理器中是否存在所述接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表;

當(dāng)確定出與所述請求對應(yīng)的接口在所述緩存處理器中存在所述接口的所述預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表時,根據(jù)第二預(yù)設(shè)分頁條件從所述第二身份標(biāo)識列表中確定與所述請求對應(yīng)的第三身份標(biāo)識列表;從所述緩存處理器中獲取與所述第三身份標(biāo)識列表對應(yīng)的第第二數(shù)據(jù)列表并將獲得的所述第二數(shù)據(jù)列表發(fā)送給所述客戶端;

當(dāng)確定出與所述請求對應(yīng)的接口在所述緩存處理器中不存在所述接口的所述預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二身份標(biāo)識列表時,從所述數(shù)據(jù)庫中獲取所述預(yù)設(shè)閾值數(shù)量的與所述請求對應(yīng)的數(shù)據(jù);按照所述第二預(yù)設(shè)分頁條件對所述獲得的所述預(yù)設(shè)閾值數(shù)量的與所述請求對應(yīng)的數(shù)據(jù)進(jìn)行分頁以獲取多頁第二分頁數(shù)據(jù);將與所述請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給所述客戶端。

本發(fā)明實(shí)施例還提供了一種服務(wù)器,包括:搜索引擎以及如權(quán)利要求9-16任一項(xiàng)所述的裝置;其中,

搜索引擎,用于獲取與上述裝置接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識列表;獲取與獲得的第一身份標(biāo)識列表對應(yīng)的第一數(shù)據(jù)列表。

可選地,該服務(wù)器還包括緩存處理器,用于存儲數(shù)據(jù)庫中的數(shù)據(jù)以及數(shù)據(jù)庫中的數(shù)據(jù)的第一身份標(biāo)識列表和第二身份標(biāo)識列表。

本發(fā)明實(shí)施例包括:服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù);當(dāng)服務(wù)器接收到來自客戶端的請求時,服務(wù)器判斷搜索引擎是否可用;當(dāng)服務(wù)器判斷出搜索引擎可用時,服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識ID列表;服務(wù)器通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表;服務(wù)器將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。本發(fā)明實(shí)施例提高了獲取分頁數(shù)據(jù)的效率以及最大程度的避免了分頁數(shù)據(jù)存在重復(fù)的問題,從而提升了用戶體驗(yàn)。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1為本申請?zhí)幚矸猪摂?shù)據(jù)的方法的流程圖;

圖2為本申請?jiān)隽扛伦值渌饕姆椒ǖ牧鞒虉D;

圖3為本申請?zhí)幚矸猪摂?shù)據(jù)的方法的實(shí)施例的流程圖;

圖4為本申請?zhí)幚矸猪摂?shù)據(jù)的裝置的結(jié)構(gòu)示意圖;

圖5為本申請服務(wù)器的結(jié)構(gòu)示意圖;

圖6為本申請服務(wù)器的實(shí)施例的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。

圖1為本申請?zhí)幚矸猪摂?shù)據(jù)的方法的流程圖,如圖1所示,包括:

步驟100:服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。

其中,服務(wù)器周期性的按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。需要說明的是,本步驟保證了在一個周期內(nèi)每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量相同并且保證了任何一頁第一分頁數(shù)據(jù)中均不包含重復(fù)的數(shù)據(jù)。

可選地,該方法之前還包括:服務(wù)器周期性的獲取搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引;包括:服務(wù)器控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引。

其中,搜索引擎設(shè)置在服務(wù)器中;搜索引擎可以是Solr(是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器),也可以是Elasticsearch(是一個基于全文搜索引擎(Lucene)的搜索服務(wù)器),或者是具有本申請中搜索引擎所具有的功能的其它搜索引擎。

其中,預(yù)設(shè)時長可以由運(yùn)維人員根據(jù)自身經(jīng)驗(yàn)進(jìn)行設(shè)定,也可以由系統(tǒng)設(shè)定為一個默認(rèn)值,如30分鐘,或45分鐘,或60分鐘等。其中,預(yù)設(shè)時長即為一個周期的時長。

可選地,在獲取搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引之前,該方法還包括:服務(wù)器記錄當(dāng)前周期內(nèi)搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)建立第一字母索引的時刻。

其中,控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引,如圖2所示,包括:

步驟201:搜索引擎獲取已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻。

步驟202:搜索引擎在數(shù)據(jù)庫的數(shù)據(jù)中查找存儲時刻在已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻之后的數(shù)據(jù)。

需要說明的是,數(shù)據(jù)庫的數(shù)據(jù)被寫入數(shù)據(jù)庫時會記錄其存儲時刻。

步驟203:搜索引擎對步驟202查找到的數(shù)據(jù)建立第二字母索引。

需要說明的是,關(guān)于控制搜索引擎如何建立第一字母索引或第二字母索引屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,在此不再贅述,并不用來限制本申請。

步驟204:搜索引擎將第二字母索引添加至第一字母索引中。

其中,第一字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類;第二字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類。

其中,服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)包括:

服務(wù)器獲取當(dāng)前周期搜索引擎所建立的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù);

服務(wù)器按照第一預(yù)設(shè)分頁條件對獲得的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。可選地,在獲取多頁第一分頁數(shù)據(jù)之后,該方法還包括:服務(wù)器確定分頁處理后的每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID。

其中,第一預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量(條數(shù))以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,根據(jù)每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及數(shù)據(jù)的總數(shù)量可以確定需要分頁的頁碼的數(shù)量,以及單頁需要獲取的數(shù)據(jù)的條數(shù),例如有100條數(shù)據(jù),每頁包含20條數(shù)據(jù),則需要分為5頁第一分頁數(shù)據(jù),頁碼依次為1、2、3、4、5,其中,頁碼為1對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從1到20;頁碼為2對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從21到40;頁碼為3對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從41到60;頁碼為4對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從61到80;頁碼為5對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從81到100。需要說明的是,關(guān)于如何排列每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序,屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,此處不再贅述,并不用來限制本申請。

步驟101:當(dāng)服務(wù)器接收到來自客戶端的請求時,服務(wù)器判斷搜索引擎是否可用。

其中,客戶端的請求中攜帶有接口信息,即客戶端向哪個接口發(fā)起的請求。其中,一個接口對應(yīng)于多條數(shù)據(jù)。

需要說明的是,關(guān)于如何判斷搜索引擎是否可用屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,其具體實(shí)現(xiàn)并不用來限制本申請的保護(hù)范圍,此處不再贅述。

步驟102:當(dāng)判斷出搜索引擎可用時,服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識(ID)列表。

其中,服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一ID列表包括:

服務(wù)器根據(jù)搜索引擎建立的第一字母索引確定與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID;

服務(wù)器將確定出的與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID按照與第一分頁數(shù)據(jù)所包含的數(shù)據(jù)在第一分頁數(shù)據(jù)中的位置順序相同的位置順序排列以組成第一ID列表。

步驟103:服務(wù)器通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表。

步驟103具體包括:

搜索引擎從與第一ID列表所包含的ID對應(yīng)的緩存處理器中獲取第一ID列表所包含的ID對應(yīng)的數(shù)據(jù);

服務(wù)器將搜索引擎獲得的第一ID列表所包含的ID對應(yīng)的數(shù)據(jù)按照與第一ID列表所包含的ID在第一ID列表中的位置順序相同的位置順序排列以組成第一數(shù)據(jù)列表。

以應(yīng)用商店的產(chǎn)品為例,用戶需要獲取分類為應(yīng)用的分頁數(shù)據(jù)的第一頁數(shù)據(jù),從搜索引擎中獲取到的第一頁數(shù)據(jù)的ID列表為1,2,,3,然后根據(jù)獲得的這個ID列表從緩存處理器中,就可以獲取應(yīng)用1、應(yīng)用2和應(yīng)用3的數(shù)據(jù)列表。

步驟104:服務(wù)器將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。

可選地,當(dāng)判斷出搜索引擎不可用時,該方法還包括:

服務(wù)器確定與請求對應(yīng)的接口在緩存處理器中是否存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表;

當(dāng)確定出與請求對應(yīng)的接口在緩存處理器中存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表時,服務(wù)器根據(jù)第二預(yù)設(shè)分頁條件從第二ID列表中確定與請求對應(yīng)的第三ID列表;服務(wù)器從緩存處理器中獲取與第三ID列表對應(yīng)的第第二數(shù)據(jù)列表并將獲得的第二數(shù)據(jù)列表發(fā)送給客戶端;

當(dāng)確定出與請求對應(yīng)的接口在緩存處理器中不存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表時,服務(wù)器從數(shù)據(jù)庫中獲取預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù);服務(wù)器按照第二預(yù)設(shè)分頁條件對獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)進(jìn)行分頁以獲取多頁第二分頁數(shù)據(jù);服務(wù)器將與請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給客戶端。需要說明的是,本步驟保證了每頁第二分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量相同并且保證了任何一頁第二分頁數(shù)據(jù)中均不包含重復(fù)的數(shù)據(jù)。

其中,服務(wù)器包括緩存處理器。

其中,預(yù)設(shè)閾值數(shù)量的設(shè)定以滿足用戶的需求而設(shè)定,如可以設(shè)定為2000,或者是設(shè)定為1000,也可以設(shè)定為1500等。例如,根據(jù)用戶的使用習(xí)慣,用戶在做翻頁的時候最多不會超過100頁,按照每頁20條的數(shù)據(jù),那么可以規(guī)定一個接口對應(yīng)的最多數(shù)據(jù)是2000條,即預(yù)設(shè)閾值數(shù)量可以設(shè)定為2000。

其中,第二預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量(條數(shù))以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,第二ID列表中包含100個ID,第二預(yù)設(shè)分頁條件為分頁的總頁數(shù)為5,單頁需要獲取的數(shù)據(jù)的個數(shù)為20,而與請求對應(yīng)的是獲取頁碼是第2頁的數(shù)據(jù),那么獲取的就是這100個ID中的第21個到第40個的ID,組成的ID列表作為第三ID列表。其中,每一頁的ID的起始位置=(頁碼-1)×單頁數(shù)據(jù)個數(shù)+1,每一頁的ID的結(jié)束位置=起始位置+單頁數(shù)據(jù)個數(shù)-1,其中,此處的單頁數(shù)據(jù)個數(shù)是每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量。

可選地,在服務(wù)器從數(shù)據(jù)庫中獲取預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)之后,該方法還包括:服務(wù)器將獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)的第四ID列表存儲在緩存處理器中?;蛘?,

可選地,服務(wù)器在將與請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給客戶端之后還包括:

服務(wù)器將每頁第二分頁數(shù)據(jù)的第五ID列表存儲在緩存處理器中。

本發(fā)明實(shí)施方式中,通過在一個周期內(nèi),服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù),當(dāng)搜索引擎可用時,從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一ID列表以及通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表,提高了獲取分頁數(shù)據(jù)的效率以及最大程度的避免了分頁數(shù)據(jù)存在重復(fù)的問題,從而提升了用戶體驗(yàn)。

圖3為本申請?zhí)幚矸猪摂?shù)據(jù)的方法的實(shí)施例的流程圖,如圖3所示,包括:

步驟300:服務(wù)器周期性的獲取搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引。

步驟300具體包括:

服務(wù)器控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引。

其中,搜索引擎設(shè)置在服務(wù)器中;搜索引擎可以是Solr(是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器),也可以是Elasticsearch(是一個基于全文搜索引擎(Lucene)的搜索服務(wù)器),或者是具有本申請中搜索引擎所具有的功能的其它搜索引擎。

其中,預(yù)設(shè)時長可以由運(yùn)維人員根據(jù)自身經(jīng)驗(yàn)進(jìn)行設(shè)定,也可以由系統(tǒng)設(shè)定為一個默認(rèn)值,如30分鐘,或45分鐘,或60分鐘等。其中,預(yù)設(shè)時長即為一個周期的時長。

其中,控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引,如圖2所示,包括:

步驟201:搜索引擎獲取已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻。

步驟202:搜索引擎在數(shù)據(jù)庫的數(shù)據(jù)中查找存儲時刻在已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻之后的數(shù)據(jù)。

需要說明的是,數(shù)據(jù)庫的數(shù)據(jù)被寫入數(shù)據(jù)庫時會記錄其存儲時刻。

步驟203:搜索引擎對步驟202查找到的數(shù)據(jù)建立第二字母索引。

需要說明的是,關(guān)于控制搜索引擎如何建立第一字母索引或第二字母索引屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,在此不再贅述,并不用來限制本申請。

步驟204:搜索引擎將第二字母索引添加至第一字母索引中。

其中,第一字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類;第二字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類。

步驟301:服務(wù)器記錄當(dāng)前周期內(nèi)搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)建立第一字母索引的時刻。

步驟302:服務(wù)器按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。

步驟302具體包括:

服務(wù)器獲取當(dāng)前周期搜索引擎所建立的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù);

服務(wù)器按照第一預(yù)設(shè)分頁條件對獲得的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)??蛇x地,在獲取多頁第一分頁數(shù)據(jù)之后,該方法還包括:服務(wù)器確定分頁處理后的每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID。

其中,第一預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,根據(jù)每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及數(shù)據(jù)的總數(shù)量可以確定需要分頁的頁碼的數(shù)量,以及單頁需要獲取的數(shù)據(jù)的條數(shù),例如有100條數(shù)據(jù),每頁包含20條數(shù)據(jù),則需要分為5頁第一分頁數(shù)據(jù),頁碼依次為1、2、3、4、5,其中,頁碼為1對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從1到20;頁碼為2對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從21到40;頁碼為3對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從41到60;頁碼為4對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從61到80;頁碼為5對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從81到100。需要說明的是,關(guān)于如何排列每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序,屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,此處不再贅述,并不用來限制本申請。

步驟303:當(dāng)服務(wù)器接收到來自客戶端的請求時,服務(wù)器判斷搜索引擎是否可用。當(dāng)判斷出搜索引擎可用時,轉(zhuǎn)入步驟304;否則,轉(zhuǎn)入步驟307。

其中,客戶端的請求中攜帶有接口信息,即客戶端向哪個接口發(fā)起的請求。其中,一個接口對應(yīng)于多條數(shù)據(jù)。

需要說明的是,關(guān)于如何判斷搜索引擎是否可用屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,其具體實(shí)現(xiàn)并不用來限制本申請的保護(hù)范圍,此處不再贅述。

步驟304:服務(wù)器從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識(ID)列表。

步驟304具體包括:

服務(wù)器根據(jù)搜索引擎建立的第一字母索引確定與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID;

服務(wù)器將確定出的與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID按照與第一分頁數(shù)據(jù)所包含的數(shù)據(jù)在第一分頁數(shù)據(jù)中的位置順序相同的位置順序排列以組成第一ID列表。

步驟305:服務(wù)器通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表。

步驟305具體包括:

搜索引擎從與第一ID列表所包含的ID對應(yīng)的緩存處理器中獲取第一ID列表所包含的ID對應(yīng)的數(shù)據(jù);

服務(wù)器將搜索引擎獲得的第一ID列表所包含的ID對應(yīng)的數(shù)據(jù)按照與第一ID列表所包含的ID在第一ID列表中的位置順序相同的位置順序排列以組成第一數(shù)據(jù)列表。

以應(yīng)用商店的產(chǎn)品為例,用戶需要獲取分類為應(yīng)用的分頁數(shù)據(jù)的第一頁數(shù)據(jù),從搜索引擎中獲取到的第一頁數(shù)據(jù)的ID列表為1,2,,3,然后根據(jù)獲得的這個ID列表從緩存處理器中,就可以獲取應(yīng)用1、應(yīng)用2和應(yīng)用3的數(shù)據(jù)列表。

步驟306:服務(wù)器將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。

步驟307:服務(wù)器確定與請求對應(yīng)的接口在緩存處理器中是否存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表。當(dāng)確定出與請求對應(yīng)的接口在緩存處理器中存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表時,轉(zhuǎn)入步驟308;否則,轉(zhuǎn)入步驟310。

其中,預(yù)設(shè)閾值數(shù)量的設(shè)定以滿足用戶的需求而設(shè)定,如可以設(shè)定為2000,或者是設(shè)定為1000,也可以設(shè)定為1500等。例如,根據(jù)用戶的使用習(xí)慣,用戶在做翻頁的時候最多不會超過100頁,按照每頁20條的數(shù)據(jù),那么可以規(guī)定一個接口對應(yīng)的最多數(shù)據(jù)是2000條,即預(yù)設(shè)閾值數(shù)量可以設(shè)定為2000。

步驟308:服務(wù)器根據(jù)第二預(yù)設(shè)分頁條件從第二ID列表中確定與請求對應(yīng)的第三ID列表。

步驟309:服務(wù)器從緩存處理器中獲取與第三ID列表對應(yīng)的第第二數(shù)據(jù)列表并將獲得的第二數(shù)據(jù)列表發(fā)送給客戶端。

步驟310:服務(wù)器從數(shù)據(jù)庫中獲取預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)。

步驟311:服務(wù)器按照第二預(yù)設(shè)分頁條件對獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)進(jìn)行分頁以獲取多頁第二分頁數(shù)據(jù)。

其中,第二預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,第二ID列表中包含100個ID,第二預(yù)設(shè)分頁條件為分頁的總頁數(shù)為5,單頁需要獲取的數(shù)據(jù)的個數(shù)為20,而與請求對應(yīng)的是獲取頁碼是第2頁的數(shù)據(jù),那么獲取的就是這100個ID中的第21個到第40個的ID,組成的ID列表作為第三ID列表。其中,每一頁的ID的起始位置=(頁碼-1)×單頁數(shù)據(jù)個數(shù)+1,每一頁的ID的結(jié)束位置=起始位置+單頁數(shù)據(jù)個數(shù)-1,其中,此處的單頁數(shù)據(jù)個數(shù)是每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量。

步驟312:服務(wù)器將與請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給客戶端。

其中,服務(wù)器包括緩存處理器。

可選地,在服務(wù)器從數(shù)據(jù)庫中獲取預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)之后,該方法還包括:服務(wù)器將獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)的第四ID列表存儲在緩存處理器中?;蛘撸?/p>

可選地,服務(wù)器在將與請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給客戶端之后還包括:

服務(wù)器將每頁第二分頁數(shù)據(jù)的第五ID列表存儲在緩存處理器中。

圖4為本申請?zhí)幚矸猪摂?shù)據(jù)的裝置的結(jié)構(gòu)示意圖,如圖4所示,包括:分頁模塊40、接收模塊41、判斷模塊42、獲取模塊43和發(fā)送模塊44。其中,

分頁模塊40,用于按照第一預(yù)設(shè)分頁條件對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。

其中,第一預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,根據(jù)每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及數(shù)據(jù)的總數(shù)量可以確定需要分頁的頁碼的數(shù)量,以及單頁需要獲取的數(shù)據(jù)的條數(shù),例如有100條數(shù)據(jù),每頁包含20條數(shù)據(jù),則需要分為5頁第一分頁數(shù)據(jù),頁碼依次為1、2、3、4、5,其中,頁碼為1對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從1到20;頁碼為2對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從21到40;頁碼為3對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從41到60;頁碼為4對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從61到80;頁碼為5對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID是從81到100。需要說明的是,關(guān)于如何排列每頁第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序,屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,此處不再贅述,并不用來限制本申請。

接收模塊41,用于當(dāng)接收到來自客戶端的請求時,通知判斷模塊42。

判斷模塊42,用于判斷搜索引擎是否可用;當(dāng)判斷出搜索引擎可用時,通知獲取模塊43。

其中,搜索引擎可以是Solr(是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器),也可以是Elasticsearch(是一個基于全文搜索引擎(Lucene)的搜索服務(wù)器),或者是具有本申請中搜索引擎所具有的功能的其它搜索引擎。

其中,客戶端的請求中攜帶有接口信息,即客戶端向哪個接口發(fā)起的請求。其中,一個接口對應(yīng)于多條數(shù)據(jù)。

需要說明的是,關(guān)于如何判斷搜索引擎是否可用屬于本領(lǐng)域技術(shù)人員所熟知的慣用技術(shù)手段,此處不再贅述,并不用來限制本申請。

獲取模塊43,用于接收到來自判斷模塊42的通知,從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識(ID)列表;通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表。

其中,獲取模塊43從搜索引擎中獲取與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一ID列表包括:

根據(jù)搜索引擎建立的第一字母索引確定與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID;

將確定出的與接收到的請求對應(yīng)的第一分頁數(shù)據(jù)所包含的數(shù)據(jù)的ID按照與第一分頁數(shù)據(jù)所包含的數(shù)據(jù)在第一分頁數(shù)據(jù)中的位置順序相同的位置順序排列以組成第一ID列表。

其中,獲取模塊43通過搜索引擎獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表包括:

搜索引擎從與第一ID列表所包含的ID對應(yīng)的緩存處理器中獲取第一ID列表所包含的ID對應(yīng)的數(shù)據(jù);

將搜索引擎獲得的第一ID列表所包含的ID對應(yīng)的數(shù)據(jù)按照與第一ID列表所包含的ID在第一ID列表中的位置順序相同的位置順序排列以組成第一數(shù)據(jù)列表。

可選地,獲取模塊43,還用于周期性的獲取搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引。

其中,獲取模塊43周期性的獲取搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引包括:控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引。

其中,預(yù)設(shè)時長可以由運(yùn)維人員根據(jù)自身經(jīng)驗(yàn)進(jìn)行設(shè)定,也可以由系統(tǒng)設(shè)定為一個默認(rèn)值,如30分鐘,或45分鐘,或60分鐘等。其中,預(yù)設(shè)時長即為一個周期的時長。

其中,搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引包括:

獲取已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻;

在數(shù)據(jù)庫的數(shù)據(jù)中查找存儲時刻在已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻之后的數(shù)據(jù);

對查找到的數(shù)據(jù)建立第二字母索引;

將第二字母索引添加至第一字母索引中。

需要說明的是,數(shù)據(jù)庫的數(shù)據(jù)被寫入數(shù)據(jù)庫時會記錄其存儲時刻。

其中,第二字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類。

發(fā)送模塊44,用于將獲得的第一數(shù)據(jù)列表發(fā)送給該客戶端。

可選地,該裝置還包括記錄模塊45,用于記錄當(dāng)前周期內(nèi)搜索引擎對數(shù)據(jù)庫的數(shù)據(jù)建立第一字母索引的時刻。此時,

獲取模塊43控制搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引包括:

通知搜索引擎獲取已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻;

通知搜索引擎在數(shù)據(jù)庫的數(shù)據(jù)中查找存儲時刻在已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻之后的數(shù)據(jù);

控制搜索引擎對查找到的數(shù)據(jù)建立第二字母索引;

將第二字母索引添加至第一字母索引中。此時,

分頁模塊40具體用于:

獲取當(dāng)前周期搜索引擎所建立的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù);

按照第一預(yù)設(shè)分頁條件對獲得的第一字母索引所包含的數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁處理以獲取多頁第一分頁數(shù)據(jù)。

其中,第一字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類。

其中,第二字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類

可選地,該裝置還包括處理模塊46;此時,

判斷模塊42,還用于當(dāng)判斷出搜索引擎不可用時,通知處理模塊46;相應(yīng)地,

處理模塊46,用于接收到來自判斷模塊42的通知,確定與請求對應(yīng)的接口在緩存處理器中是否存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表;當(dāng)確定出與請求對應(yīng)的接口在緩存處理器中存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表時,根據(jù)第二預(yù)設(shè)分頁條件從第二ID列表中確定與請求對應(yīng)的第三ID列表;從緩存處理器中獲取與第三ID列表對應(yīng)的第第二數(shù)據(jù)列表并將獲得的第二數(shù)據(jù)列表發(fā)送給客戶端;當(dāng)確定出與請求對應(yīng)的接口在緩存處理器中不存在該接口的預(yù)設(shè)閾值數(shù)量的數(shù)據(jù)的第二ID列表時,從數(shù)據(jù)庫中獲取預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù);按照第二預(yù)設(shè)分頁條件對獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)進(jìn)行分頁以獲取多頁第二分頁數(shù)據(jù);將與請求對應(yīng)的第二分頁數(shù)據(jù)發(fā)送給客戶端。

其中,緩存處理器屬于上述裝置所屬的服務(wù)器。

其中,預(yù)設(shè)閾值數(shù)量的設(shè)定以滿足用戶的需求而設(shè)定,如可以設(shè)定為2000,或者是設(shè)定為1000,也可以設(shè)定為1500等。例如,根據(jù)用戶的使用習(xí)慣,用戶在做翻頁的時候最多不會超過100頁,按照每頁20條的數(shù)據(jù),那么可以規(guī)定一個接口對應(yīng)的最多數(shù)據(jù)是2000條,即預(yù)設(shè)閾值數(shù)量可以設(shè)定為2000。

其中,第二預(yù)設(shè)分頁條件包括每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量以及每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的位置順序。例如,第二ID列表中包含100個ID,第二預(yù)設(shè)分頁條件為分頁的總頁數(shù)為5,單頁需要獲取的數(shù)據(jù)的個數(shù)為20,而與請求對應(yīng)的是獲取頁碼是第2頁的數(shù)據(jù),那么獲取的就是這100個ID中的第21個到第40個的ID,組成的ID列表作為第三ID列表。其中,每一頁的ID的起始位置=(頁碼-1)×單頁數(shù)據(jù)個數(shù)+1,每一頁的ID的結(jié)束位置=起始位置+單頁數(shù)據(jù)個數(shù)-1,其中,此處的單頁數(shù)據(jù)個數(shù)是每頁分頁數(shù)據(jù)所包含的數(shù)據(jù)的數(shù)量。

可選地,該裝置還包括存儲模塊47,用于在將獲得的預(yù)設(shè)閾值數(shù)量的與請求對應(yīng)的數(shù)據(jù)的第四ID列表存儲在緩存處理器中?;蛘?,

存儲模塊47,用于將每頁第二分頁數(shù)據(jù)的第五ID列表存儲在緩存處理器中。

圖5為本申請服務(wù)器的結(jié)構(gòu)示意圖,如圖5所示,包括:搜索引擎以及如圖4所示的處理分頁數(shù)據(jù)的裝置。其中,

搜索引擎,用于獲取與上述裝置接收到的請求對應(yīng)的第一分頁數(shù)據(jù)的第一身份標(biāo)識(ID)列表;獲取與獲得的第一ID列表對應(yīng)的第一數(shù)據(jù)列表。

其中,搜索引擎可以是Solr(是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器),也可以是Elasticsearch(是一個基于全文搜索引擎(Lucene)的搜索服務(wù)器),或者是具有本申請中搜索引擎所具有的功能的其它搜索引擎。

可選地,搜索引擎還用于對數(shù)據(jù)庫的數(shù)據(jù)所建立的第一字母索引;包括:間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引。

其中,搜索引擎設(shè)置在服務(wù)器中;搜索引擎可以是Solr(是一個獨(dú)立的企業(yè)級搜索應(yīng)用服務(wù)器),也可以是Elasticsearch(是一個基于全文搜索引擎(Lucene)的搜索服務(wù)器),或者是具有本申請中搜索引擎所具有的功能的其它搜索引擎。

其中,預(yù)設(shè)時長可以由運(yùn)維人員根據(jù)自身經(jīng)驗(yàn)進(jìn)行設(shè)定,也可以由系統(tǒng)設(shè)定為一個默認(rèn)值,如30分鐘,或45分鐘,或60分鐘等。其中,預(yù)設(shè)時長即為一個周期的時長。

其中,搜索引擎間隔預(yù)設(shè)時長對數(shù)據(jù)庫的數(shù)據(jù)采用增量更新的方式建立第一字母索引包括:

獲取已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻;

在數(shù)據(jù)庫的數(shù)據(jù)中查找存儲時刻在已記錄的當(dāng)前預(yù)設(shè)時長內(nèi)建立第一字母索引的時刻之后的數(shù)據(jù);

對查找到的數(shù)據(jù)建立第二字母索引;

將第二字母索引添加至第一字母索引中。

需要說明的是,數(shù)據(jù)庫的數(shù)據(jù)被寫入數(shù)據(jù)庫時會記錄其存儲時刻。

其中,第一字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類;第二字母索引的索引值包括:數(shù)據(jù)的ID,和/或數(shù)據(jù)的名稱,和/或數(shù)據(jù)的分類。

可選地,該服務(wù)器還包括緩存處理器,用于存儲數(shù)據(jù)庫中的數(shù)據(jù)以及數(shù)據(jù)庫中的數(shù)據(jù)的第一ID列表和第二ID列表。

可選地,緩存處理器,還用于存儲第四ID列表或第五ID列表。

圖6為本申請服務(wù)器的實(shí)施例的結(jié)構(gòu)示意圖,如圖6所示,包括:輸入輸出(IO)總線、處理器60、存儲器61、內(nèi)存62和通信裝置63。其中,

輸入輸出(IO)總線分別與自身所屬的服務(wù)器的其它部件(處理器60、存儲器61、內(nèi)存62和通信裝置63)連接,并且為其它部件提供傳送線路。

處理器60通??刂谱陨硭鶎俚姆?wù)器的總體操作。例如,處理器60執(zhí)行計(jì)算和確認(rèn)等操作。其中,處理器60可以是中央處理器(CPU)。

通信裝置63,通常包括一個或多個組件,其允許自身所屬的服務(wù)器與無線通信系統(tǒng)或網(wǎng)絡(luò)之間的無線電通信。

存儲器61存儲處理器60可讀、處理器可執(zhí)行的軟件代碼,其包含用于控制處理器60執(zhí)行本文描述的功能的指令(即軟件執(zhí)行功能)。

其中,上述處理分頁數(shù)據(jù)的裝置中,實(shí)現(xiàn)分頁模塊40、接收模塊41、判斷模塊42、獲取模塊43、發(fā)送模塊44、記錄模塊45、處理模塊46和存儲模塊47的功能的軟件代碼可存儲在存儲器61中,并由處理器60執(zhí)行或編譯后執(zhí)行。

需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。

上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件(例如處理器)完成,所述程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等。可選地,上述實(shí)施例的全部或部分步驟也可以使用一個或多個集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),例如通過集成電路來實(shí)現(xiàn)其相應(yīng)功能,也可以采用軟件功能模塊的形式實(shí)現(xiàn),例如通過處理器執(zhí)行存儲于存儲器中的程序/指令來實(shí)現(xiàn)其相應(yīng)功能。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。

以上僅為本申請的優(yōu)選實(shí)施例,并非因此限制本申請的專利范圍,凡是利用本申請說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本申請的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
望城县| 特克斯县| 巴马| 岑巩县| 太湖县| 黔南| 金华市| 若尔盖县| 盐边县| 通江县| 望谟县| 中阳县| 额尔古纳市| 新昌县| 隆德县| 安仁县| 饶河县| 祥云县| 伊宁市| 大庆市| 泰宁县| 南部县| 岫岩| 平泉县| 阿拉善盟| 广汉市| 瓦房店市| 富蕴县| 龙南县| 肥东县| 宁远县| 临潭县| 九龙坡区| 新余市| 海晏县| 新疆| 武鸣县| 濮阳县| 肇州县| 稻城县| 泗洪县|