[发明专利]基于Redis的ElasticSearch分页查询方法和设备有效
申请号: | 201811395515.0 | 申请日: | 2018-11-22 |
公开(公告)号: | CN109492148B | 公开(公告)日: | 2020-07-24 |
发明(设计)人: | 张毅;喻波;王志海;董晓斌;安鹏 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/958 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100097 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 redis elasticsearch 分页 查询 方法 设备 | ||
1.一种基于Redis的ElasticSearch分页查询的方法,其特征在于包括下述步骤:
步骤1:数据请求端从外部发起数据查询请求;
步骤2:计算查询请求的分页参数,并与分页阈值进行比较,根据比较的结果确定向ElasticSearch发送数据请求的方式,并发送数据查询请求;
步骤3:ElasticSearch返回查询结果,将结果数据封装并返回给所述数据请求端;
根据比较的结果确定向ElasticSearch发送数据请求的方式,并发送数据查询请求,包括:
当分页参数小于分页阈值时,直接向ElasticSearch发送查询数据请求;当分页参数大于分页阈值时,则需要通过Redis数据库结合ElasticSearch构造向ElasticSearch查询的请求方式,然后向ElasticSearch发送查询数据请求;
所述通过Redis数据库结合ElasticSearch构造向ElasticSearch查询的请求方式,包括:
(1)、根据查询请求的统一资源定位符url和查询参数计算出一个查询请求的唯一标识,所述查询参数不包括分页参数;
(2)、以所述查询唯一标识作为关键字在Redis数据库中查找对应数据,如果查询到相关数据,则转(5);否则转(3);
(3)、启动后台线程向ElasticSearch进行Scroll查询,ElasticSearch获取满足查询条件的所有文档的唯一标识的集合并返回;
(4)以查询请求的唯一标识作为关键字将接收到的所述文档的唯一标识的集合追加存储到Redis的链表中,并设置该Redis中所述链表的关键字的过期时间,即缓存失效时间;
(5)根据分页参数对Redis数据库中的关键字值对应的链表进行分页查询,获取链表中存储的对应位置的文档唯一标识集合;
(6)根据上一步获取到的文档唯一标识集合构造向ElasticSearch查询数据的请求;
所述缓存失效时间按照如下方式确定:
T=C×P×k,其中,T为所述缓存失效时间,其单位为秒,C是Redis数据库的内存容量,其单位为吉字节(GB),P是所述内存的空余容量占全部内存空间容量的比例,k为调整系数,其为小于1的正数。
2.如权利要求1所述的方法,其特征在于所述数据请求端为是能够发起数据请求的任何一种工具或者设备。
3.如权利要求2所述的方法,其特征在于所述数据请求端为浏览器。
4.如权利要求2或3所述的方法,其特征在于所述分页包括深度分页。
5.如权利要求4所述的方法,其特征在于所述分页阈值为10000。
6.如权利要求5所述的方法,其特征在于所述k优选为0.52。
7.一种基于Redis的ElasticSearch分页查询的电子设备,其特征在于包括:
处理器和存储器,所述存储器具有存储有程序代码的介质,当所述处理器读取所述介质存储的程序代码时,所述电子设备能够执行权利要求1-6任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811395515.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据记录总数量获取方法及装置
- 下一篇:爬虫任务处理方法及装置