本公开涉及计算机信息处理领域,具体而言,涉及一种基于缓存的弹性搜索(elasticsearch)分页查询方法、装置、电子设备及计算机可读介质。
背景技术:
1、软件开发项目中通常会面临日志数据存储与显示问题,随着数据量与查询量的增长,实现高效存储,快速搜索是必不可少的,其中弹性搜索的出现就是解决这类问题的,它能很方便的使大量数据具有搜索、分析和探索的能力。在数据显示上,一般会在客户端页面上展示数据,当数据量很多的时候,为了提升性能,减小内存压力,同时提升查询效率,便于页面上展示查看,对数据进行分页查询处理就是其中一种有效的处理方法;通常由于数据搜索的空间局部性以及日志数据记录存储后不会再修改的特性,可以一次多查询一部分数据并进行缓存,使用缓存来直接为客户端服务,可以减少与弹性搜索的数据交互,从而大大提高程序的性能。
2、现有技术中的分页查询方法,均不支持随机翻页,而且也存在越往后翻页越慢的问题。因此,需要一种新的基于缓存的弹性搜索分页查询方法、装置、电子设备及计算机可读介质。
3、在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、有鉴于此,本申请提供一种基于缓存的弹性搜索分页查询方法、装置、电子设备及计算机可读介质,能够提升日志数据查询的性能,减小内存压力,同时提升查询效率,实现向前翻页和随机翻页功能。
2、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
3、根据本申请的一方面,提出一种基于缓存的弹性搜索分页查询方法,该方法包括:获取来自用户的分页查询请求;基于所述分页查询请求检索数据生成查询页数信息;基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,和/或尾页查询,和/或中间页查询;根据用户的操作将首页查询,和/或尾页查询,和/或中间页查询的结果进行展示。
4、在本申请的一种示例性实施例中,获取来自用户的分页查询请求,包括:获取来自用户的对日志数据的所述分页查询请求。
5、在本申请的一种示例性实施例中,基于所述分页查询请求检索数据生成查询页数信息,包括:基于所述分页查询请求利用search_after查询方式检索数据生成所述查询页数信息。
6、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,包括:基于所述分页查询请求构建查询条件;通过search_after查询方式查询弹性搜索的缓存生成查询结果;将所述查询结果进行排序;根据所述排序将所述查询结果返回首页显示。
7、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,还包括:根据search_after的数值,通过异步方式查询弹性搜索的缓存中首页的后续预设页对应的数据,生成后续查询数据;将所述后续查询数据分页进行缓存;其中,缓存的key值,value值通过第一策略确定。
8、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行尾页查询,包括:基于所述分页查询请求构建查询条件;通过search_after查询方式查询弹性搜索的缓存生成查询结果;将所述查询结果进行逆序排序;根据所述逆序排序将所述查询结果返回首页显示。
9、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行尾页查询,还包括:根据search_after的数值,通过异步方式查询弹性搜索的缓存中尾页的前续预设页对应的数据,生成前续查询数据;将所述后续查询数据分页进行缓存;其中,缓存的key值,value值通过第二策略确定。
10、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行中间页查询,包括:基于所述分页查询请求构建查询条件和查询页码;根据所述查询页码、预设的key生成规则确定key值;通过search_after查询方式和所述key值查询弹性搜索的缓存生成查询结果;查询当前条件下的数据总量;将所述数据总量和弹性搜索的缓存中数据总量进行比较;在比对结果一致时,确定弹性搜索的缓存有效,并将所述查询结果返回首页显示。
11、在本申请的一种示例性实施例中,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行中间页查询,还包括:在比对结果不一致时,确定弹性搜索的缓存失效;获取当前数据总量和弹性搜索的缓存中数据总量的差值;根据所述差值、search_after的值进行偏移查询以生成查询结果。
12、在本申请的一种示例性实施例中,根据所述差值、search_after的值进行偏移查询以生成查询结果,包括:根据所述差值、search_after的值进行偏移查询以生成实际数据量;根据所述实际数据量和所述查询页码异步获取当前查询页码的前续查询数据和后续查询数据;将所述前续查询数据和所述后续查询数据分页进行缓存;其中,缓存的key值,value值通过第三策略确定。
13、根据本申请的一方面,提出一种基于缓存的弹性搜索分页查询装置,该装置包括:请求模块,用于获取来自用户的分页查询请求;页数模块,用于基于所述分页查询请求检索数据生成查询页数信息;查询模块,用于基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,和/或尾页查询,和/或中间页查询;展示模块,用于根据用户的操作将首页查询,和/或尾页查询,和/或中间页查询的结果进行展示。
14、根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
15、根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
16、根据本申请的基于缓存的弹性搜索分页查询方法、装置、电子设备及计算机可读介质,通过获取来自用户的分页查询请求;基于所述分页查询请求检索数据生成查询页数信息;基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,和/或尾页查询,和/或中间页查询;根据用户的操作将首页查询,和/或尾页查询,和/或中间页查询的结果进行展示的方式,能够提升日志数据查询的性能,减小内存压力,同时提升查询效率,实现向前翻页和随机翻页功能。
17、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
1.一种基于缓存的弹性搜索分页查询方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,获取来自用户的分页查询请求,包括:
3.如权利要求1所述的方法,其特征在于,基于所述分页查询请求检索数据生成查询页数信息,包括:
4.如权利要求1所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,包括:
5.如权利要求4所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行首页查询,还包括:
6.如权利要求1所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行尾页查询,包括:
7.如权利要求6所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行尾页查询,还包括:
8.如权利要求1所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行中间页查询,包括:
9.如权利要求8所述的方法,其特征在于,基于所述分页查询请求和所述查询页数信息通过弹性搜索的缓存进行中间页查询,还包括:
10.如权利要求9所述的方法,其特征在于,根据所述差值、search_after的值进行偏移查询以生成查询结果,包括:
11.一种基于缓存的弹性搜索分页查询装置,其特征在于,包括: