CN107577701A - 一种数据排序方法、排序服务器及计算机可读存储介质 - Google Patents
一种数据排序方法、排序服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107577701A CN107577701A CN201710619575.5A CN201710619575A CN107577701A CN 107577701 A CN107577701 A CN 107577701A CN 201710619575 A CN201710619575 A CN 201710619575A CN 107577701 A CN107577701 A CN 107577701A
- Authority
- CN
- China
- Prior art keywords
- data
- ranking results
- target data
- target
- sorting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种数据排序方法、排序服务器及计算机可读存储介质,该方法在接收到数据排序请求后,对其进行解析获取请求参数,然后根据请求参数,对待排序数据进行分块,确定数据排序请求对应的目标数据块,获取与目标数据块匹配的原始数据及干预数据等目标排序数据,对目标排序数据进行排序,这样在进行排序时,排序服务器每次仅需要对目标数据块匹配的原始数据及干预数据等进行排序,当次的排序数据量将远远小于所有数据总量,对应的排序速度及效率也将大大增加,解决了现有数据排序方法在大数据量时存在排序效率低的问题,本发明同时提供了一种用户终端及计算机可读存储介质,通过实施上述方案,增强了用户的使用体验。
Description
技术领域
本发明涉及信息输入领域,尤其涉及一种数据排序方法、排序服务器及计算机可读存储介质。
背景技术
在日常生活中,用户有着各种各样的排序需求,例如用户在下载应用时常用的应用排行榜等。应用中心等排序服务器为了满足用户的排序请求,将为用户提供数据排序等排序服务,例如基于总下载量、日下载量、下载量增长率等参数对应用进行排序,并返回排序结果。
在实际应用中,排序服务器在进行排序时,除了参考各应用的原始数据,如实际周下载量等,还会根据一些如调整应用排名等需求设置干预数据,实现对应用排名的干预,排序服务器需要同时参考原始数据及干预数据进行排序。
一般情况下,当数据量较小时,排序服务器可以很快的生成原始数据和干预数据的排序结果,并返回给客户端。然而当数据量达到万级、十万级甚至百万级别时候,将所有数据混合在一起放在内存中排序很可能在一瞬间导致服务器内存爆满,最终导致其他服务停止,排序服务器宕机等结果,即使内存承受得住,大量数据的排序操作,数据在列表中的插入,移动等会导致排序的过程非常缓慢,不能够满足实时性要求;即现有数据排序方法在大数据量时存在排序效率低的问题。
发明内容
为了解决现有数据排序方法在大数据量时存在排序效率低的技术问题,本发明提供了一种数据排序方法、排序服务器及计算机可读存储介质。
为解决上述技术问题,本发明提供了一种数据排序方法,包括:
接收并解析来自用户终端的数据排序请求,获取数据排序请求对应的请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块;
根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据;目标排序数据包括原始数据及干预数据;
对目标排序数据进行排序,生成数据排序请求对应的排序结果,并发送至用户终端。
可选的,数据排序方法在获取请求参数之后,还包括:
查找与请求参数匹配的历史排序结果;
发送历史排序结果至用户终端。
可选的,数据排序方法在发送历史排序结果至用户终端之前,还包括:
获取历史排序结果的时效参数;
根据时效参数,判断历史排序结果是否有效;
若是,则发送历史排序结果。
可选的,数据排序方法在生成排序结果之后,还包括:
将排序结果设置为数据排序请求对应的请求参数匹配的历史排序结果;
存储历史排序结果。
可选的,存储历史排序结果包括:
根据历史排序结果的生成时间,设置历史排序结果的时效参数;
采用分布式存储方式存储历史排序结果。
可选的,根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据包括:
根据目标数据及排序规则,获取目标数据的待排序数据,待排序数据包括原始数据及干预数据;
获取待排序数据中与目标数据块匹配的目标排序数据。
可选的,根据目标数据及排序规则,获取目标数据的待排序数据包括:
从数据库中,选择目标数据的相关数据;
获取排序规则的数据类型;
将相关数据中符合数据类型的数据作为待排序数据。
可选的,获取待排序数据中与目标数据块匹配的目标排序数据包括:
获取在目标数据块之前的干预数据数量、以及目标数据块包含的干预数据数量;
根据干预数据的排序,确定目标数据块包含的干预数据;
获取在目标数据块之前的原始数据数量、以及目标数据块包含的原始数据数量;
根据原始数据的排序,确定目标数据块包含的原始数据。
进一步的,本发明提供了一种排序服务器,排序服务器包括:存储器、处理器、连接存储器及处理器的输入输出总线、及存储在存储器上并可在处理器上运行的数据排序程序,数据排序程序被处理器执行时实现本发明提供的数据排序方法的步骤。
进一步的,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有一个或多个程序,一个或多个程序被执行时实现本发明提供的数据排序方法的步骤。
本发明实施例所提出的一种数据排序方法、排序服务器及计算机可读存储介质,该方法在接收到数据排序请求后,对其进行解析获取目标数据、排序规则、目标数据位置及目标数据数量等请求参数,然后根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块,根据目标数据及排序规则,获取与目标数据块匹配的原始数据及干预数据等目标排序数据,对目标排序数据进行排序,生成数据排序请求对应的排序结果,并发送至用户终端,这样在进行排序时,排序服务器每次仅需要对目标数据块匹配的原始数据及干预数据等进行排序,当次的排序数据量将远远小于所有数据总量,对应的排序速度及效率也将大大增加,解决了现有数据排序方法在大数据量时存在排序效率低的问题,增强了用户的使用体验。
附图说明
图1为实现本发明各个实施例一个可选的服务器的硬件结构示意图;
图2为本发明第一实施例提供的数据排序方法的流程图;
图3为本发明第二实施例提供的数据排序方法的流程图;
图4为本发明第三实施例提供的数据排序方法的流程图;
图5为本发明第四实施例提供的数据排序装置的结构示意图;
图6为本发明实施例涉及的现有数据排序方法的数据流示意图;
图7为本发明实施例提供的数据排序方法的数据流示意图;
图8为本发明实施例提供的干预数据到排序数据的数据流示意图;
图9为本发明实施例提供的原始数据到排序数据的数据流示意图;
图10为本发明实施例提供的排序数据的示意图;
图11为本发明实施例提供的排序结果的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
如图1所示,为实现本发明各个实施例一个可选的服务器的硬件结构示意图,该服务器至少包括:输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
其中,本发明提供的数据排序装置中,实现接收模块51、解析模块52、分块模块53、筛选模块54、排序模块55和发送模块56的功能的软件代码可存储在存储器13中,并由处理器12执行或编译后执行。
基于上述服务器的硬件结构,提出本发明方法各个实施例。
第一实施例:
如图2所示,提出本发明数据排序方法的第一实施例,在本实施例中,本发明提供的数据排序方法包括以下步骤:
S201:接收来自用户终端的数据排序请求;
排序服务器接收用户终端根据用户操作生成并发送的数据排序请求,例如请求应用日下载排序的排序请求1、请求应用周下载排序的排序请求2、请求应用注册总数排序的排序请求3等等;
S202:解析该数据排序请求,获取该数据排序请求对应的请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
在现有技术中,数据排序请求仅携带目标数据和排序规则两个参数,以请求应用日下载排序的排序请求1为例,其目标数据是各应用的应用数据,包括应用标识及应用介绍等,而排序规则是将这些应用的日下载数据按照从大到小的顺序排序;排序服务器在获取到目标数据和排序规则后,如图6所示,查找对应的原始数据及干预数据,然后对所有的查找到的原始数据及干预数据进行排序,得到排序结果。
在本申请中,数据排序请求在携带目标数据和排序规则的同时,还将携带目标数据位置及目标数据数量这样的参数,目标数据位置可以是阅读第N 页的数据,而目标数据数量则是该页显示M项应用的日下载量等参数,具体的如下表1所示:
表1
目标数据位置及目标数据数量不需要用户设置,排序服务器对应的客户端可以检测用户操作来生成,例如苹果商店等应用中心的客户端,检测到用户请求浏览的是排序结果的第5页,而终端默认每页显示20项,那么,此时,目标数据位置为第5页,目标数据数量为20项。
S203:根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块;
例如,待排序数据包括8000项原始数据和2000项干预数据等10000项数据,此时,基于表1,可以将这10000项数据分成n=10000/M块,当n不为整数时,向上取整,如当M=20时,n=500,当M=30时,n=334。
将目标数据位置对应的数据块作为数据排序请求对应的目标数据块,例如N=5,则将第5块数据块作为数据排序请求1对应的目标数据块。
S204:根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据;目标排序数据包括原始数据及干预数据;
如图7所示,当M=20时,第5块数据块匹配的目标排序数据包括:16 项原始数据和4项干预数据总共20个目标排序数据,然后从所有的原始数据中选择对应的16项原始数据、从所有的干预数据中选择对应的4项干预数据;将这16项原始数据和4项干预数据,作为目标排序数据。
S205:对目标排序数据进行排序,生成数据排序请求对应的排序结果;
如图7所示,按照排序规则,对目标排序数据,生成排序结果。
S206:发送排序结果至对应的用户终端。
现结合图7至图11对本实施例中步骤S204做进一步的说明。
在实际应用中,步骤S204包括步骤一和步骤二等两个大步骤,具体的:
步骤一为筛选待排序数据的步骤,其简单的描述为:根据目标数据及排序规则,获取目标数据的待排序数据,待排序数据包括原始数据及干预数据;在实际应用中,排序服务器将存储很多数据,例如各应用的日下载数据、周下载数据等等,本步骤实现对数据库的初步筛选。
步骤一具体包括:从数据库中,选择目标数据的相关数据;获取排序规则的数据类型;将相关数据中符合数据类型的数据作为待排序数据。
在实际应用中,数据库存储有原始数据和干预数据,针对不同应用的原始数据和干预数据可以存储在一起,也可以分开存储,以分开存储为例。
原始数据如下表2所示:
表2
干预数据如下表3所示:
表3
在实际应用中,数据库除了表2及表3这些内容之外,还会包括很多别的数据,例如应用更新次数、更新日期等等,在数据库中选择目标数据的相关数据,则是从数据库中筛选出来表2及表3所示的数据;而获取排序规则的数据类型,则是确定原始数据及干扰数据的数据类型,例如数据排序请求1,其排序规则的数据类型为日下载数据,而将相关数据中符合数据类型的数据作为待排序数据,则是对表2及表3进行筛选,仅调用应用、应用数据及日下载数据这三项数据作为待排序数据即可,其他数据不需要处理。
步骤二为筛选目标排序数据的步骤,其简单的描述为:获取待排序数据中与目标数据块匹配的目标排序数据,本步骤是为了确定目标数据块匹配的目标排序数据,是对待排序数据的进一步筛选,筛选结果作为排序的初始数据进行排序,具体的,包括:
获取在目标数据块之前的干预数据数量、以及目标数据块包含的干预数据数量;根据干预数据的排序,确定目标数据块包含的干预数据;
本步骤是对目标数据块中干预数据的确定进行说明,干预数据包括应用 8000至应用9999的日下载数据,目标数据块为第5块数据块,在第5块数据块之前的4个数据块包括了16个干预数据,第5块数据块包括4个干预数据,那么,第5块数据块需要包括第17至第20干预数据,然后将其筛选出来。如图8所示,筛选结果为目标数据块包含作为干扰数据的应用8016至应用 8019的日下载数据。
获取在目标数据块之前的原始数据数量、以及目标数据块包含的原始数据数量;根据原始数据的排序,确定目标数据块包含的原始数据;本步骤是对目标数据块中原始数据的确定进行说明,原始数据包括应用0000至应用 7999的日下载数据,目标数据块为第5块数据块,第5块数据块包括4个干预数据,那么,其需要包括16个原始数据,在第5块数据块之前的4个数据块包括了64个干预数据,那么,第5块数据块需要包括第65至第80原始数据,然后将其筛选出来。如图9所示,筛选结果为目标数据块包含作为原始数据的应用0064至应用0079的日下载数据。
在上述描述的基础上,步骤S205涉及的目标排序数据如图10所示,其包括应用0064至应用0079的日下载数据以及应用8016至应用8019的日下载数据这20个数据;而生成的排序结果如图11所示,仅包括20个应用的排序,由于本步骤仅需要对20个应用的日下载数据进行排序,排序速度及效率将会大大增加。
综上所述,本实施例提供了一种数据排序方法,该方法在接收到数据排序请求后,对其进行解析获取目标数据、排序规则、目标数据位置及目标数据数量等请求参数,然后根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块,根据目标数据及排序规则,获取与目标数据块匹配的原始数据及干预数据等目标排序数据,对目标排序数据进行排序,生成数据排序请求对应的排序结果,并发送至用户终端,这样在进行排序时,排序服务器每次仅需要对目标数据块匹配的原始数据及干预数据等进行排序,当次的排序数据量将远远小于所有数据总量,对应的排序速度及效率也将大大增加,解决了现有数据排序方法在大数据量时存在排序效率低的问题,增强了用户的使用体验。
第二实施例:
如图3所示,提出本发明数据排序方法的第二实施例,在本实施例中,本发明提供的数据排序方法包括以下步骤:
S301:接收来自用户终端的数据排序请求;
排序服务器接收用户终端根据用户操作生成并发送的数据排序请求,例如请求应用日下载排序的排序请求1、请求应用周下载排序的排序请求2、请求应用注册总数排序的排序请求3等等;
S302:解析该数据排序请求,获取该数据排序请求对应的请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
在本申请中,数据排序请求在携带目标数据和排序规则的同时,还将携带目标数据位置及目标数据数量这样的参数,目标数据位置可以是阅读第N 页的数据,而目标数据数量则是该页显示M项应用的日下载量等参数,具体的如表1所示。
S303:查找是否存储有与请求参数匹配的历史排序结果;
在本实施例中,排序服务器还在数据库中存储了历史排序结果以及各历史排序结果对应的请求参数,具体的如下表4所示:
请求参数 | 历史排序结果 |
Q1 | P1 |
Q2 | P2 |
Q3 | P3 |
…… |
表4
在表4中,请求参数都是包括目标数据、排序规则、目标数据位置及目标数据数量等至少4项参数,在具体应用中,目标数据和排序规则大致相同,而目标数据位置及目标数据数量则不相同;历史排序结果则是采用表格、文本等格式存储的数据,其与请求参数一一对应。
本步骤将步骤S302解析得到的请求参数,在表4中的请求参数一栏中进行匹配,若在表4中找到参数完全相同的请求参数,认为存储有与请求参数匹配的历史排序结果,执行步骤S304;若没有在表4中找到参数完全相同的请求参数,认为没有存储与请求参数匹配的历史排序结果,执行步骤S305;
S304:发送查找到的历史排序结果至用户终端,流程结束;
S305:根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块;
例如,待排序数据包括8000项原始数据和2000项干预数据等10000项数据,此时,基于表1,可以将这10000项数据分成n=10000/M块,当n不为整数时,向上取整,如当M=20时,n=500,当M=30时,n=334。
将目标数据位置对应的数据块作为数据排序请求对应的目标数据块,例如N=5,则将第5块数据块作为数据排序请求1对应的目标数据块。
S306:根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据;目标排序数据包括原始数据及干预数据;
如图7所示,当M=20时,第5块数据块匹配的目标排序数据包括:16 项原始数据和4项干预数据总共20个目标排序数据,然后从所有的原始数据中选择对应的16项原始数据、从所有的干预数据中选择对应的4项干预数据;将这16项原始数据和4项干预数据,作为目标排序数据。
S307:对目标排序数据进行排序,生成数据排序请求对应的排序结果;
如图7所示,按照排序规则,对目标排序数据,生成排序结果。
S308:将排序结果设置为数据排序请求对应的请求参数匹配的历史排序结果,并存储历史排序结果;
将步骤S307中的排序结果设置为数据排序请求对应的请求参数Q4匹配的历史排序结果P4,并存储历史排序结果,此时,数据库的存储结果如下表 5所示:
请求参数 | 历史排序结果 |
Q1 | P1 |
Q2 | P2 |
Q3 | P3 |
Q4 | P4 |
…… |
表5
S309:发送排序结果至对应的用户终端。
本实施例提出了一种数据排序方法,该方法与第一实施例的方法相比,引入了历史排序结果这一机制,这样排序服务器在解析到请求参数之后,首先查找历史排序结果,在查找到匹配的历史排序结果后,将其直接返回给用户终端,而不再需要再次排序,速度更快。
第三实施例:
如图4所示,提出本发明数据排序方法的第三实施例,在本实施例中,本发明提供的数据排序方法包括以下步骤:
S401:接收来自用户终端的数据排序请求;
排序服务器接收用户终端根据用户操作生成并发送的数据排序请求,例如请求应用日下载排序的排序请求1、请求应用周下载排序的排序请求2、请求应用注册总数排序的排序请求3等等;
S402:解析该数据排序请求,获取该数据排序请求对应的请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
在本申请中,数据排序请求在携带目标数据和排序规则的同时,还将携带目标数据位置及目标数据数量这样的参数,目标数据位置可以是阅读第N 页的数据,而目标数据数量则是该页显示M项应用的日下载量等参数,具体的如表1所示。
S403:查找是否存储有与请求参数匹配的历史排序结果;
在本实施例中,排序服务器还在数据库中存储了历史排序结果以及各历史排序结果对应的请求参数,具体的如表4所示。
本步骤将步骤S402解析得到的请求参数,在表4中的请求参数一栏中进行匹配,若在表4中找到参数完全相同的请求参数,认为存储有与请求参数匹配的历史排序结果,执行步骤S404;若没有在表4中找到参数完全相同的请求参数,认为没有存储与请求参数匹配的历史排序结果,执行步骤S406;
S404:获取历史排序结果的时效参数,根据时效参数,判断历史排序结果是否有效;
历史排序结果具备时效性,例如基于应用日下载数据的排序结果,其时效是1天,而基于应用周下载数据的排序结果,其时效是7天;那么,基于应用日下载数据的排序结果的时效参数可以是2017年7月24日0:00-2017年7月24日23:59有效,而基于应用周下载数据的排序结果的时效参数可以是 2017年7月24日0:00-2017年7月30日23:59有效。
在具体应用中,各历史排序结果及其时效参数可以采用如下表6所示的发送进行存储:
历史排序结果 | 时效参数 |
P1 | T11-T12 |
P2 | T21-T22 |
P3 | T31-T32 |
…… |
表6
基于上述描述,为了保证发送给用户的排序结果是有效的,则需要根据时效参数判断历史排序结果是否有效,例如,当前时间为2017年7月25日,那么,时效参数为2017年7月24日0:00-2017年7月24日23:59有效的排序结果就是无效的,需要重新排序,此时,执行步骤S406;而时效参数为2017 年7月24日0:00-2017年7月30日23:59有效的排序结果就是有效的,不需要重新排序,此时,执行步骤S405;
S405:发送查找到的历史排序结果至用户终端,流程结束;
S406:根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块;
例如,待排序数据包括8000项原始数据和2000项干预数据等10000项数据,此时,基于表1,可以将这10000项数据分成n=10000/M块,当n不为整数时,向上取整,如当M=20时,n=500,当M=30时,n=334。
将目标数据位置对应的数据块作为数据排序请求对应的目标数据块,例如N=5,则将第5块数据块作为数据排序请求1对应的目标数据块。
S407:根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据;目标排序数据包括原始数据及干预数据;
如图7所示,当M=20时,第5块数据块匹配的目标排序数据包括:16 项原始数据和4项干预数据总共20个目标排序数据,然后从所有的原始数据中选择对应的16项原始数据、从所有的干预数据中选择对应的4项干预数据;将这16项原始数据和4项干预数据,作为目标排序数据。
S408:对目标排序数据进行排序,生成数据排序请求对应的排序结果;
如图7所示,按照排序规则,对目标排序数据,生成排序结果。
S409:将排序结果设置为数据排序请求对应的请求参数匹配的历史排序结果,根据历史排序结果的生成时间,设置历史排序结果的时效参数,采用分布式存储方式存储历史排序结果;
在本实施例中,采用分布式存储方式存储历史排序结果可以保证排序结果的副本安全性,这样当一个节点故障时,还可以从其他节点查找排序结果,同时也可以实现对步骤S405涉及的调用历史排序结果的分流。
将步骤S408中的排序结果设置为数据排序请求对应的请求参数Q4匹配的历史排序结果P4,并存储历史排序结果,此时,数据库的存储结果如表5 所示;同时,将对表6进行更新,更新后如下表7所示:
历史排序结果 | 时效参数 |
P1 | T11-T12 |
P2 | T21-T22 |
P3 | T31-T32 |
P4 | T41-T42 |
…… |
表7
S410:发送排序结果至对应的用户终端。
本实施例提出了一种数据排序方法,该方法与第二实施例的方法相比,引入了历史排序结果的时效参数验证这一机制,这样排序服务器在解析到请求参数之后,首先查找历史排序结果,在查找到匹配的历史排序结果后,将进行时效参数的验证,仅在其有效时,将其返回给用户终端,保证了用户接收到的排序结果的有效性。
第四实施例:
如图5所示,提出本发明应用于排序服务器中的数据排序装置的实施例,在本实施例中,本发明提供的数据排序装置包括:
接收模块51用于接收来自用户终端的数据排序请求;
排序服务器接收用户终端根据用户操作生成并发送的数据排序请求,例如请求应用日下载排序的排序请求1、请求应用周下载排序的排序请求2、请求应用注册总数排序的排序请求3等等;
解析模块52用于解析该数据排序请求,获取该数据排序请求对应的请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
在本申请中,数据排序请求在携带目标数据和排序规则的同时,还将携带目标数据位置及目标数据数量这样的参数,目标数据位置可以是阅读第N 页的数据,而目标数据数量则是该页显示M项应用的日下载量等参数。
目标数据位置及目标数据数量不需要用户设置,排序服务器对应的客户端可以检测用户操作来生成,例如苹果商店等应用中心的客户端,检测到用户请求浏览的是排序结果的第5页,而终端默认每页显示20项,那么,此时,目标数据位置为第5页,目标数据数量为20项。
分块模块53用于根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块;
例如,待排序数据包括8000项原始数据和2000项干预数据等10000项数据,此时,基于表1,可以将这10000项数据分成n=10000/M块,当n不为整数时,向上取整,如当M=20时,n=500,当M=30时,n=334。
将目标数据位置对应的数据块作为数据排序请求对应的目标数据块,例如N=5,则将第5块数据块作为数据排序请求1对应的目标数据块。
筛选模块54用于根据目标数据及排序规则,获取与目标数据块匹配的目标排序数据;目标排序数据包括原始数据及干预数据;
如图7所示,当M=20时,第5块数据块匹配的目标排序数据包括:16 项原始数据和4项干预数据总共20个目标排序数据,然后从所有的原始数据中选择对应的16项原始数据、从所有的干预数据中选择对应的4项干预数据;将这16项原始数据和4项干预数据,作为目标排序数据。
排序模块55用于对目标排序数据进行排序,生成数据排序请求对应的排序结果;
如图7所示,按照排序规则,对目标排序数据,生成排序结果。
发送模块56用于发送排序结果至对应的用户终端。
在实际应用中,筛选模块54包括第一子模块和第二子模块,具体的:
第一子模块用于根据目标数据及排序规则,获取目标数据的待排序数据,待排序数据包括原始数据及干预数据;在实际应用中,具体用于:从数据库中,选择目标数据的相关数据;获取排序规则的数据类型;将相关数据中符合数据类型的数据作为待排序数据。
第二子模块用于获取待排序数据中与目标数据块匹配的目标排序数据;具体的,用于:获取在目标数据块之前的干预数据数量、以及目标数据块包含的干预数据数量;根据干预数据的排序,确定目标数据块包含的干预数据;获取在目标数据块之前的原始数据数量、以及目标数据块包含的原始数据数量;根据原始数据的排序,确定目标数据块包含的原始数据。
本实施例提供了一种数据排序装置,该装置在接收到数据排序请求后,对其进行解析获取目标数据、排序规则、目标数据位置及目标数据数量等请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量,然后根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块,根据目标数据及排序规则,获取与目标数据块匹配的原始数据及干预数据等目标排序数据,对目标排序数据进行排序,生成数据排序请求对应的排序结果,并发送至用户终端,这样在进行排序时,排序服务器每次仅需要对目标数据块匹配的原始数据及干预数据等进行排
序,当次的排序数据量将远远小于所有数据总量,对应的排序速度及效率也将大大增加,解决了现有数据排序方法在大数据量时存在排序效率低的问题,增强了用户的使用体验。
现结合图1对本发明提供的排序服务器进行进一步的说明,如图1所示,提出本发明排序服务器的实施例,在本实施例中,排序服务器至少包括::输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
在图1所示的基础上,本实施例中,数据排序程序被处理器执行时实现上述第一实施例至第三实施例中的所有方法的步骤。
同时,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有一个或多个程序,一个或多个程序被处理器执行时实现上述第一实施例至第三实施例中的所有方法的步骤。
本发明实施例提供了一种数据排序方法、排序服务器及计算机可读存储介质,该方法在接收到数据排序请求后,对其进行解析获取目标数据、排序规则、目标数据位置及目标数据数量等请求参数,请求参数包括目标数据、排序规则、目标数据位置及目标数据数量,然后根据目标数据数量,对待排序数据进行分块,根据目标数据位置,确定数据排序请求对应的目标数据块,根据目标数据及排序规则,获取与目标数据块匹配的原始数据及干预数据等目标排序数据,对目标排序数据进行排序,生成数据排序请求对应的排序结果,并发送至用户终端,这样在进行排序时,排序服务器每次仅需要对目标数据块匹配的原始数据及干预数据等进行排序,当次的排序数据量将远远小于所有数据总量,对应的排序速度及效率也将大大增加,解决了现有数据排序方法在大数据量时存在排序效率低的问题,增强了用户的使用体验;
进一步的,在一些实施例中,引入了历史排序结果这一机制,这样排序服务器在解析到请求参数之后,首先查找历史排序结果,在查找到匹配的历史排序结果后,将其直接返回给用户终端,而不再需要再次排序,速度更快;
进一步的,在一些实施例中,引入了历史排序结果的时效参数验证这一机制,这样排序服务器在解析到请求参数之后,首先查找历史排序结果,在查找到匹配的历史排序结果后,将进行时效参数的验证,仅在其有效时,将其返回给用户终端,保证了用户接收到的排序结果的有效性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据排序方法,其特征在于,包括:
接收并解析来自用户终端的数据排序请求,获取所述数据排序请求对应的请求参数,所述请求参数包括目标数据、排序规则、目标数据位置及目标数据数量;
根据所述目标数据数量,对所述待排序数据进行分块,根据所述目标数据位置,确定所述数据排序请求对应的目标数据块;
根据所述目标数据及所述排序规则,获取与所述目标数据块匹配的目标排序数据;所述目标排序数据包括原始数据及干预数据;
对所述目标排序数据进行排序,生成所述数据排序请求对应的排序结果,并发送至所述用户终端。
2.如权利要求1所述的数据排序方法,其特征在于,所述数据排序方法在获取所述请求参数之后,还包括:
查找与所述请求参数匹配的历史排序结果;
发送所述历史排序结果至所述用户终端。
3.如权利要求2所述的数据排序方法,其特征在于,所述数据排序方法在发送所述历史排序结果至所述用户终端之前,还包括:
获取所述历史排序结果的时效参数;
根据所述时效参数,判断所述历史排序结果是否有效;
若是,则发送所述历史排序结果。
4.如权利要求1所述的数据排序方法,其特征在于,所述数据排序方法在生成所述排序结果之后,还包括:
将所述排序结果设置为所述数据排序请求对应的请求参数匹配的历史排序结果;
存储所述历史排序结果。
5.如权利要求4所述的数据排序方法,其特征在于,所述存储所述历史排序结果包括:
根据所述历史排序结果的生成时间,设置所述历史排序结果的时效参数;
采用分布式存储方式存储所述历史排序结果。
6.如权利要求1至5任一项所述的数据排序方法,其特征在于,所述根据所述目标数据及所述排序规则,获取与所述目标数据块匹配的目标排序数据包括:
根据所述目标数据及所述排序规则,获取目标数据的待排序数据,所述待排序数据包括原始数据及干预数据;
获取所述待排序数据中与所述目标数据块匹配的目标排序数据。
7.如权利要求6所述的数据排序方法,其特征在于,所述根据所述目标数据及所述排序规则,获取目标数据的待排序数据包括:
从数据库中,选择所述目标数据的相关数据;
获取所述排序规则的数据类型;
将所述相关数据中符合所述数据类型的数据作为所述待排序数据。
8.如权利要求6所述的数据排序方法,其特征在于,所述获取所述待排序数据中与所述目标数据块匹配的目标排序数据包括:
获取在所述目标数据块之前的干预数据数量、以及所述目标数据块包含的干预数据数量;
根据所述干预数据的排序,确定所述目标数据块包含的干预数据;
获取在所述目标数据块之前的原始数据数量、以及所述目标数据块包含的原始数据数量;
根据所述原始数据的排序,确定所述目标数据块包含的原始数据。
9.一种排序服务器,其特征在于,所述排序服务器包括:存储器、处理器、连接所述存储器及处理器的输入输出总线、及存储在所述存储器上并可在所述处理器上运行的数据排序程序,所述数据排序程序被所述处理器执行时实现如权利要求1至8任一项所述的数据排序方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有一个或多个程序,所述一个或多个程序被执行时实现如权利要求1至8任一项所述的数据排序方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710619575.5A CN107577701A (zh) | 2017-07-26 | 2017-07-26 | 一种数据排序方法、排序服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710619575.5A CN107577701A (zh) | 2017-07-26 | 2017-07-26 | 一种数据排序方法、排序服务器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107577701A true CN107577701A (zh) | 2018-01-12 |
Family
ID=61034154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710619575.5A Pending CN107577701A (zh) | 2017-07-26 | 2017-07-26 | 一种数据排序方法、排序服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107577701A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344303A (zh) * | 2018-11-30 | 2019-02-15 | 广州虎牙信息科技有限公司 | 一种数据结构切换方法、装置、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073549A1 (en) * | 2001-02-22 | 2004-04-15 | Itzhak Turkel | Query resolution system |
CN103034660A (zh) * | 2011-10-10 | 2013-04-10 | 阿里巴巴集团控股有限公司 | 信息提供方法、装置及系统 |
CN103324701A (zh) * | 2013-06-13 | 2013-09-25 | 深圳中兴网信科技有限公司 | 数据搜索装置和数据搜索方法 |
CN103678408A (zh) * | 2012-09-21 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种查询数据的方法及装置 |
CN106708568A (zh) * | 2016-12-07 | 2017-05-24 | 微梦创科网络科技(中国)有限公司 | 一种分页加载客户端内容的方法及装置 |
CN106789167A (zh) * | 2016-11-28 | 2017-05-31 | 努比亚技术有限公司 | 一种数据处理方法及服务器 |
-
2017
- 2017-07-26 CN CN201710619575.5A patent/CN107577701A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073549A1 (en) * | 2001-02-22 | 2004-04-15 | Itzhak Turkel | Query resolution system |
CN103034660A (zh) * | 2011-10-10 | 2013-04-10 | 阿里巴巴集团控股有限公司 | 信息提供方法、装置及系统 |
CN103678408A (zh) * | 2012-09-21 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种查询数据的方法及装置 |
CN103324701A (zh) * | 2013-06-13 | 2013-09-25 | 深圳中兴网信科技有限公司 | 数据搜索装置和数据搜索方法 |
CN106789167A (zh) * | 2016-11-28 | 2017-05-31 | 努比亚技术有限公司 | 一种数据处理方法及服务器 |
CN106708568A (zh) * | 2016-12-07 | 2017-05-24 | 微梦创科网络科技(中国)有限公司 | 一种分页加载客户端内容的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344303A (zh) * | 2018-11-30 | 2019-02-15 | 广州虎牙信息科技有限公司 | 一种数据结构切换方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3893154A1 (en) | Recommendation model training method and related apparatus | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN103368986B (zh) | 一种信息推荐方法及信息推荐装置 | |
CN103544220B (zh) | 应用推荐方法和装置 | |
CN102687166A (zh) | 用于用户兴趣建模的方法和设备 | |
Mei et al. | An adaptive service selection approach to service composition | |
CN102193999A (zh) | 一种对搜索结果进行排序的方法及设备 | |
CN104050292A (zh) | 省流量模式搜索服务的方法、服务器、客户端和系统 | |
US20130173388A1 (en) | Methods and systems for service discovery and selection | |
CN104750760A (zh) | 一种推荐应用软件的实现方法及装置 | |
CN108038655A (zh) | 部门需求的推荐方法、应用服务器及计算机可读存储介质 | |
CN111428933A (zh) | 物流地址推荐方法、系统、设备及存储介质 | |
CN108140055A (zh) | 触发应用信息 | |
CN104133765A (zh) | 网络活动的测试用例发送方法及测试用例服务器 | |
Kerkhove et al. | Scheduling of unrelated parallel machines with limited server availability on multiple production locations: a case study in knitted fabrics | |
CN112861026A (zh) | 用户偏好挖掘方法、装置、介质和电子设备 | |
Murat Afsar et al. | Machine reassignment problem: the ROADEF/EURO challenge 2012 | |
CN107577701A (zh) | 一种数据排序方法、排序服务器及计算机可读存储介质 | |
CN102663111A (zh) | 一种信息获取方法和设备 | |
CN106294417A (zh) | 一种数据排序方法、装置及电子设备 | |
CN108228355A (zh) | 任务处理方法及装置、任务调度方法及装置 | |
CN116700929A (zh) | 基于人工智能的任务批量处理方法及系统 | |
CN115130002A (zh) | 推荐请求处理方法、装置、计算机设备、存储介质 | |
CN110333927B (zh) | 界面跳转方法、装置、服务器及存储介质 | |
CN111381831B (zh) | 应用部署方法和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180112 |
|
RJ01 | Rejection of invention patent application after publication |