System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本申請涉及計算機,具體涉及一種跳頁查詢方法、一種跳頁查詢裝置、一種機器可讀存儲介質(zhì)、一種計算機程序產(chǎn)品及一種處理器。
技術(shù)介紹
1、在數(shù)據(jù)管理領(lǐng)域數(shù)據(jù)查詢功能常常用到elasticsearch作為數(shù)據(jù)搜索引擎來輔助結(jié)構(gòu)化查詢,而elasticsearch的分頁查詢主要提供了以下三種方式:1.from+size淺分頁方式,優(yōu)點是支持隨機跳頁,缺點是受限于elasticsearch的max_result_window參數(shù),不能無限制翻頁且越往后越慢。2.scroll方式,優(yōu)點是支持全量遍歷,不受限于max_result_window,缺點是響應(yīng)時間非實時,保留上下文需要足夠的內(nèi)存空間否則容易內(nèi)存溢出。3.searchafter方式,優(yōu)點是不受限于max_result_window,可以無限往后翻頁,缺點是只能向后翻頁,不支持隨機翻頁。
2、因此,目前使用elasticsearch作為數(shù)據(jù)搜索引擎來進行數(shù)據(jù)查詢,存在只能從前向后翻頁,不能從后翻到之前的頁面的問題。
技術(shù)實現(xiàn)思路
1、本申請實施例的目的是提供一種跳頁查詢方法、一種跳頁查詢裝置、一種機器可讀存儲介質(zhì)、一種計算機程序產(chǎn)品及一種處理器。該跳頁查詢方法對于經(jīng)歷過的頁面也可以實現(xiàn)隨機訪問,提高了查詢速率。
2、為了實現(xiàn)上述目的,本申請第一方面提供一種跳頁查詢方法,包括:
3、獲取查詢目標頁;
4、基于所述查詢目標頁、預(yù)置的每頁數(shù)據(jù)大小和節(jié)點大小,確定得到目標頁所在節(jié)點;
5
6、在本申請實施例中,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
7、a1:判斷所述目標頁所在節(jié)點是否在前端頁面的緩存數(shù)據(jù)中;
8、a2:在確定所述目標頁所在節(jié)點在前端頁面的緩存數(shù)據(jù)中的情況下,基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果;
9、a3:在確定所述目標頁所在節(jié)點不在前端頁面的緩存數(shù)據(jù)中的情況下,將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),并跳轉(zhuǎn)執(zhí)行a1。
10、在本申請實施例中,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),并跳轉(zhuǎn)執(zhí)行a1,包括:
11、基于所述目標頁所在節(jié)點的節(jié)點號和當前節(jié)點的節(jié)點號,計算得到前翻節(jié)點數(shù);
12、判斷所述前翻節(jié)點數(shù)是否超過最大允許緩存節(jié)點數(shù);
13、在確定所述前翻節(jié)點數(shù)超過最大允許緩存節(jié)點數(shù)的情況下,判斷所述前翻節(jié)點數(shù)是否超過所述最大向前穿越節(jié)點數(shù);
14、在確定所述前翻節(jié)點數(shù)未超過最大向前穿越節(jié)點數(shù)的情況下,將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),并跳轉(zhuǎn)執(zhí)行a1。
15、在本申請實施例中,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),包括:
16、確定所述前端頁面的緩存數(shù)據(jù)中的有效緩存節(jié)點數(shù),所述有效緩存節(jié)點數(shù)為所述前端頁面的緩存數(shù)據(jù)中有效緩存節(jié)點的最大節(jié)點號;
17、基于所述有效緩存節(jié)點數(shù)和所述節(jié)點大小,調(diào)用elasticsearch的api進行查詢,得到返回數(shù)據(jù);
18、將所述返回數(shù)據(jù)作為下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存到所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù)。
19、在本申請實施例中,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
20、確定所述前端頁面的緩存數(shù)據(jù)中的有效緩存節(jié)點數(shù),所述有效緩存節(jié)點數(shù)為所述前端頁面的緩存數(shù)據(jù)中有效緩存節(jié)點的最大節(jié)點號;
21、基于所述目標頁所在節(jié)點、查詢目標頁、每頁數(shù)據(jù)大小和節(jié)點大小,計算得到第一參數(shù),所述第一參數(shù)用于表示到達所述目標頁所在節(jié)點后,需要跳過的數(shù)據(jù)條數(shù);
22、基于所述有效緩存節(jié)點數(shù)和所述第一參數(shù),調(diào)用elasticsearch的api進行查詢,得到查詢結(jié)果。
23、在本申請實施例中,所述基于所述目標頁所在節(jié)點、查詢目標頁、每頁數(shù)據(jù)大小和節(jié)點大小,計算得到第一參數(shù),包括:
24、將所述目標頁所在節(jié)點、查詢目標頁、每頁數(shù)據(jù)大小和節(jié)點大小代入預(yù)設(shè)的待查詢范圍計算公式,得到第一參數(shù),所述預(yù)設(shè)的待查詢范圍計算公式為:
25、size=gotopage*pagesize-(gotonode-1)*nodesize,
26、其中,gotopage為查詢目標頁,pagesize為每頁數(shù)據(jù)大小,gotonode為目標頁所在節(jié)點,nodesize為節(jié)點大小,size為第一參數(shù)。
27、在本申請實施例中,還包括:
28、判斷所述前端頁面的緩存是否失效;
29、在確定所述前端頁面的緩存失效的情況下,清空所述緩存數(shù)據(jù)。
30、在本申請實施例中,還包括:
31、判斷所述當前查詢條件是否發(fā)生變化;
32、在確定所述當前查詢條件是否發(fā)生變化的情況下,初始化緩存,并基于變化后的當前查詢條件,將所述后端數(shù)據(jù)中對應(yīng)分塊數(shù)據(jù)加載至前端頁面緩存。
33、在本申請實施例中,所述基于所述查詢目標頁、預(yù)置的每頁數(shù)據(jù)大小和節(jié)點大小,確定得到目標頁所在節(jié)點,包括:
34、將所述查詢目標頁、預(yù)置的每頁數(shù)據(jù)大小和節(jié)點大小代入預(yù)設(shè)的節(jié)點計算公式,得到目標頁所在節(jié)點,所述預(yù)設(shè)的節(jié)點計算公式為:
35、gotonodeidx=ceiling(gotopage*pagesize/nodesize),
36、其中,gotonodeidx為目標頁所在節(jié)點,gotopage為查詢目標頁,pagesize為每頁數(shù)據(jù)大小,nodesize為節(jié)點大小。
37、本申請第二方面一種跳頁查詢裝置,所述跳頁查詢裝置包括:
38、獲取模塊,用于獲取查詢目標頁;
39、確定模塊,用于基于所述查詢目標頁、預(yù)置的每頁數(shù)據(jù)大小和節(jié)點大小,確定得到目標頁所在節(jié)點;
40、查詢模塊,用于基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,所述前端頁面的緩存數(shù)據(jù)是基于當前查詢條件,將后端數(shù)據(jù)中對應(yīng)分塊數(shù)據(jù)加載至前端頁面緩存得到,所述前端頁面的緩存數(shù)據(jù)包括多個節(jié)點,每一個節(jié)點用于存放所述后端數(shù)據(jù)中的不同分塊數(shù)據(jù)。
41、本申請第三方面提供一種處理器,被配置成執(zhí)行上述的跳頁查詢方法。
42、本申請第四方本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種跳頁查詢方法,其特征在于,所述跳頁查詢方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),并跳轉(zhuǎn)執(zhí)行A1,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點、查詢目標頁、每頁數(shù)據(jù)大小和節(jié)點大小,計算得到第一參數(shù),包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
9.根據(jù)權(quán)利要求1所述的方法,其
10.一種跳頁查詢裝置,其特征在于,所述跳頁查詢裝置包括:
11.一種處理器,其特征在于,被配置成執(zhí)行根據(jù)權(quán)利要求1至9中任意一項所述的跳頁查詢方法。
12.一種機器可讀存儲介質(zhì),該機器可讀存儲介質(zhì)上存儲有指令,其特征在于,該指令在被處理器執(zhí)行時使得所述處理器被配置成執(zhí)行根據(jù)權(quán)利要求1至9中任一項所述的跳頁查詢方法。
13.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序在被處理器執(zhí)行時實現(xiàn)根據(jù)權(quán)利要求1至9中任一項所述的跳頁查詢方法。
...【技術(shù)特征摘要】
1.一種跳頁查詢方法,其特征在于,所述跳頁查詢方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),并跳轉(zhuǎn)執(zhí)行a1,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述后端數(shù)據(jù)中下一節(jié)點對應(yīng)的分塊數(shù)據(jù)緩存至所述前端頁面的緩存數(shù)據(jù)中,以更新所述前端頁面的緩存數(shù)據(jù),包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點,在前端頁面的緩存數(shù)據(jù)中進行查詢,得到查詢結(jié)果,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述基于所述目標頁所在節(jié)點、查詢目標頁、每頁數(shù)據(jù)大小和節(jié)點大小,...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:劉暢,李晗,任偉志,陳志瓊,
申請(專利權(quán))人:建信金融科技有限責任公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。