[发明专利]一种分布式系统下的多条件分页查询方法有效
申请号: | 202110263552.1 | 申请日: | 2021-03-11 |
公开(公告)号: | CN112632157B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 肖广华 | 申请(专利权)人: | 全时云商务服务股份有限公司 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/27;G06F16/2453 |
代理公司: | 北京惟盛达知识产权代理事务所(普通合伙) 11855 | 代理人: | 董鸿柏 |
地址: | 100102 北京市东城区青*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 系统 条件 分页 查询 方法 | ||
1.一种分布式系统下的多条件分页查询方法,其特征在于:
步骤1,为每个用户数据条目设置一个主标识userID,用户数据通过userID映射关联;获取不同终端登录时的访问标识token,建立一个以token为key的哈希表map,value是历史数据总集userIDList和历史筛选条件conditions组成的触发参数集结构体,其中哈希表map 的数据结构为: map[key, value], key=token, value={userIDlist, conditions};
当接收到终端的多条件查询请求时,判断当前请求的筛选条件与缓存中最近一次的历史筛选条件是否一致;如果两次筛选的条件不一致,则清空userID数据总集,跳转到步骤2;如果两次筛选条件一致,则表示用户只是在上一次筛选结果的基础上作翻页操作,直接复用缓存中已经存在的userID数据总集userIDList,执行分页结果集查询;
步骤2,获取终端发起的多条件查询请求,依据多条件查询请求,在各数据子系统中获取符合筛选条件的userID数据子集,所述userID数据子集的数量为N;
步骤3,对在数据子系统中所获得的符合筛选条件下的N个userID数据子集做交集运算,所述交集运算具体是:在N个userID数据子集中找出一个最小数据子集A,称为minList,将N个userID数据子集转换为哈希表map结构,键表示userID,值表示此userID在各个userID数据子集中出现次数的计数,称为count,初始值都为1;
以选定最小数据集A ,minList为基准,依次遍历除了最小数据子集A之外的userID数据子集,在遍历时,当userID在哈希表map中不存在时,count值维持不变;当userID在哈希表map中存在时,count值+1; 当count值=N时,将对应的userID放入到数据总集userIDList中,全部遍历完后,userIDList为最终符合所有筛选条件的userID数据总集;其中,count用于判断一个userID是否在N个userID数据子集中都出现,等价于是否userID符合所有筛选条件;
步骤4 获得最终符合所有条件的userID 数据总集userIDList, 根据每页的数量做截取,获得分页结果;
其中,获得最终符合所有条件的userID 数据总集userIDList, 根据每页的数量做截取,获取分页结果具体为:在获取到userID数据集后,将终端发起的分页查询请求简化成对内存中userID数据集的分页操作,设定page表示页码,从1开始,pageCount表示每页数量,pageCount=20,表示每页显示20条,根据数组的起始下标和终止下标的方式在userID数据集中截取指定页码的userID子集;用start表示分页起始下标,计算公式为:
start= (page – 1) * pageCount,
用end表示分页终止下标,计算公式为:
end = min(page * pageCount, totalCount),
其中totalCount表示数据总集userIDList中元素总数量,min()函数表示两个数值中取较小的值;每页的userID子集用pageUserIDList表示,则pageUserIDList = userIDList[start,end],表示对userIDList按下标取start到end之间的子集,其中按下标取到的start到end之间的子集中,包含含有起点start的子集,不包含含有终点end的子集;当如果start=totalCount,则此页直接为空;
获取userID 数据总集userIDList的单页userID子集pageUserIDList,在各个数据子系统中查询页面显示需要的字段信息并组合显示;
对最终符合所属有条件的userID 数据总集userIDList 进行缓存,以备翻页查询。
2.如权利要求1所述的方法,其特征在于:设置缓存userID数据总集userIDList数据的生命周期与各终端访问标识token的生命周期相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全时云商务服务股份有限公司,未经全时云商务服务股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110263552.1/1.html,转载请声明来源钻瓜专利网。