掌桥专利:专业的专利平台
掌桥专利
首页

数据排序方法、装置、电子介质及存储介质

文献发布时间:2023-06-19 10:19:37


数据排序方法、装置、电子介质及存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据排序方法、装置、电子设备及存储介质。

背景技术

日常生活中,用户有着各种各样的排序需求,例如用户在点外卖时,外卖APP为了满足用户的不同用餐需求,将为用户提供数据排序等排序服务。在对数据进行检索排序时,通常是根据共性的排序规则对符合条件的数据进行排序,然而,这种基于共性的排序方法只能对符合条件的数据进行功能极为有限的排序处理,而无法应对不同产品需求,需要产品能够针对不同业务场景进行自定义的排序,即现有数据排序方法存在配置存在不够灵活的问题;同时这类场景数据量一般在千万级,若排序规则为每次访问接口时实时触发排序,则会严重影响接口性能和用户体验。

发明内容

针对现有技术中存在的问题,本发明实施例提供一种数据排序方法、装置、电子设备及存储介质。

第一方面,本发明实施例提供一种数据排序方法,包括:

接收针对原始数据表的排序请求,所述排序请求中携带有所述原始数据表的标识以及排序需求;其中,所述排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序;

根据所述排序请求中携带的所述原始数据表的标识,创建与所述原始数据表对应的排序表,并根据所述排序需求中指定的优先排序字段为所述排序表中对应的字段创建索引;

将所述原始数据表中的数据同步至所述排序表;

根据所述排序需求中指定的优先排序字段的排序优先级顺序,以及,所述排序表中创建的索引,对所述排序表中的数据进行排序。

进一步地,根据所述排序需求中指定的优先排序字段的排序优先级顺序,以及,所述排序表中创建的索引,对所述排序表中的数据进行排序,包括:

利用所述排序表中与优先排序字段对应的索引,按照优先排序字段的排序优先级顺序,对所述排序表中的数据进行排序。

进一步地,接收针对原始数据表的排序请求,包括:

接收用户在排序查询页面输入的针对原始数据表的排序请求;其中,所述排序请求中的排序需求的输入方式包括按照优先排序字段的排序优先级顺序依次点击所述排序查询页面上展示的所述原始数据表的字段,以确定所述原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序。

进一步地,在对所述排序表中的数据进行排序后,所述方法还包括:

根据排序结果展示页面的展示容量上限,在排序结果中选取满足所述展示容量上限且排序靠前的排序内容发送给服务器,以使服务器将接收到的排序内容在所述排序结果展示页面进行展示。

进一步地,所述优先排序字段为1个或多个。

第二方面,本发明实施例提供了一种数据排序装置,接收模块,用于接收针对原始数据表的排序请求,所述排序请求中携带有所述原始数据表的标识以及排序需求;其中,所述排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序;

创建模块,用于根据所述排序请求中携带的所述原始数据表的标识,创建与所述原始数据表对应的排序表,并根据所述排序需求中指定的优先排序字段为所述排序表中对应的字段创建索引;

同步模块,用于将所述原始数据表中的数据同步至所述排序表;

排序模块,用于根据所述排序需求中指定的优先排序字段的排序优先级顺序,以及,所述排序表中创建的索引,对所述排序表中的数据进行排序。

进一步地,所述排序模块,具体用于:

利用所述排序表中与优先排序字段对应的索引,按照优先排序字段的排序优先级顺序,对所述排序表中的数据进行排序。

进一步地,所述接收模块在接收针对原始数据表的排序请求时,具体用于:

接收用户在排序查询页面输入的针对原始数据表的排序请求;其中,所述排序请求中的排序需求的输入方式包括按照优先排序字段的排序优先级顺序依次点击所述排序查询页面上展示的所述原始数据表的字段,以确定所述原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的数据排序方法的步骤。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的数据排序方法的步骤。

由上述技术方案可知,本发明实施例提供的数据排序方法、装置、电子设备及存储介质,可以接收针对原始数据表的排序请求,然后根据所述排序请求中携带的所述原始数据表的标识,创建与所述原始数据表对应的排序表,并根据所述排序需求中指定的优先排序字段为所述排序表中对应的字段创建索引,接着将所述原始数据表中的数据同步至所述排序表,最后根据所述排序需求中指定的优先排序字段的排序优先级顺序以及所述排序表中创建的索引,对所述排序表中的数据进行排序,实现前端可自定义配置排序需求,后端根据原始数据表的标识以及排序需求能够自动进行相应需求的排序,从而提升用户搜索查询体验,满足用户的多维度排序查询请求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的数据排序方法的流程示意图;

图2为本发明一实施例提供的数据排序的示意图;

图3为本发明一实施例提供的数据排序装置的结构示意图;

图4为本发明一实施例中电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的数据排序方法进行详细解释和说明。

图1为本发明一实施例提供的数据排序方法的流程示意图;如图1所示,该方法包括:

步骤101:接收针对原始数据表的排序请求,排序请求中携带有原始数据表的标识以及排序需求;其中,排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序。

在本步骤中,需要说明的是,原始数据表是指数据源表(无序表),即来源于底层数据的一些基表,举例来说如评价信息表、房源信息表等,通过其它入口(APP、网页)的评价页面收集评价信息得到评价信息表,通过其它入口(APP、网页)的房源录入页面收集房源信息得到房源信息表。排序需求即指针对不同的产品需求,排序需求不是一成不变的,而是不同用户侧重的关注点的需求、及对应的数据搜索结果排序需求,举例来说,用户A希望评价信息表根据表中评价内容字段对应的字数数量进行升序排序,用户B希望评价信息表根据评价时间字段进行倒序排序,用户C希望评价信息表根据评价的类别(好评、差评、五星好评等)字段进行排序。

在本实施例的执行装置的数据库中按标识存储了若干原始数据表,在原始数据表中存储了与字段对应的数据,该多维度字段举例来说如评价信息表中的评价人字段、评价时间字段、经纪人字段、服务态度字段、评价的类别字段(好评、差评、五星等)、评价内容字段等多个维度。

在本步骤中,排序需求中指定有原始数据表的优先排序字段,如原始数据表的排序字段有评价时间字段、评价内容字段、评价的类别字段,评价需求可以为指定优先排序字段按评价时间字段距离2020年5月10日的远近进行由近到远的排序、也可以为按评价的类别字段进行排序,同时还可以按优先排序字段的排序优先级顺序,如先按评价的类别字段、再按评价时间字段的顺序逐次排序。如配置评价的类别字段的排序优先级高于评价时间字段优先级,需求为先按评价的类别中好评的评价进行排序、再按评价的时间距离查询的查询日的远近进行排序,如评价时间2020年5月1日,评价的类别好评;评价时间2020年5月3日,评价的类别差评;评价时间2020年5月9日,评价的类别好评;评价时间2020年4月1日,评价的类别好评;评价时间2020年4月25日,评价的类别差评;评价时间2020年4月26日,评价的类别无,进行排序。由于配置评价的类别字段的排序优先级高于评价时间字段优先级,用户2020年5月10日进行上述需求排序(需求为先按评价的类别中好评的评价进行排序、再按评价的时间距离查询的查询日的远近进行排序),则展示顺序为:(Ⅰ)评价时间2020年5月9日,评价的类别好评;(Ⅱ)评价时间2020年5月1日,评价的类别好评;(Ⅲ)评价时间2020年4月1日,评价的类别好评;剩余的没有评价中没有好评,则按时间进行排序,(Ⅳ)评价时间2020年5月3日,评价的类别差评;(Ⅴ)评价时间2020年4月26日,评价的类别无;(Ⅵ)评价时间2020年4月25日,评价的类别差评。

步骤102:根据排序请求中携带的原始数据表的标识,创建与原始数据表对应的排序表,并根据排序需求中指定的优先排序字段为排序表中对应的字段创建索引。

在本步骤中,需要说明的是,参见图2,解析针对原始数据表的排序请求,识别原始数据表的标识,根据标识生成创建排序表的语句,从而自动创建排序表(有序表),举例来说,原始数据表的字段有评价时间、文字评价、评价的类别,当配置需求为根据“评价时间”排序,则创建一个新的表结构(排序表)。根据排序需求中指定的优先排序字段(评价时间)为排序表中对应的字段创建索引,即在排序表中创建“评价时间”索引(根据排序字段生成必要的索引),从而在查询过程中,通过增加的索引提升查询速度,形成快速查询路径。

步骤103:将原始数据表中的数据同步至排序表。

在本步骤中,可以理解的是,进行关联数据,将原始数据表中存储的数据同步至排序表。

步骤104:根据排序需求中指定的优先排序字段的排序优先级顺序,以及,排序表中创建的索引,对排序表中的数据进行排序。

在本步骤中,可以理解的是,根据排序需求生成排序sql语句,执行排序任务,即对排序表中的数据按排序需求中指定的优先排序字段的排序优先级顺序在排序表中完成排序。

在本实施例中,需要说明的是,根据排序需求自动生成对应的索引,可能是普通索引、唯一索引、全文索引,本实施对此不作限定。排序需求可以自定义设置,可见排序需求可以是多维度的;设置生效后自动按照排序需求对数据表进行排序,业务按照需求访问排好序的操作,排序完成后,给出提示,在前端展示与排序需求对应的结果。

本实施例可以针对不同的产品需求、业务需求自定义排序需求,能够应对数据量在千万级的数据排序需求,并且通过上述这种分布式的处理方式来创建排序表、创建索引,生成与排序需求对应的语句,进行排序。同时,可以作为一种控件,从而在后续遇到相同排序需求的用户搜索时,直接进行相应地排序,节省了重复开发的工作量,避免每面临一个新的排序需求,编写一次代码用于实现新的排序需求,进而提升了开发效率。

由上面技术方案可知,本发明实施例提供的数据排序方法,可以接收针对原始数据表的排序请求,然后根据排序请求中携带的原始数据表的标识,创建与原始数据表对应的排序表,并根据排序需求中指定的优先排序字段为排序表中对应的字段创建索引,接着将原始数据表中的数据同步至排序表,最后根据排序需求中指定的优先排序字段的排序优先级顺序以及排序表中创建的索引,对排序表中的数据进行排序,实现前端可自定义配置排序需求,后端根据原始数据表的标识以及排序需求能够自动进行相应需求的排序,从而提升用户搜索查询体验,满足用户的多维度排序查询请求。

在上述实施例的基础上,在本实施例中,根据排序需求中指定的优先排序字段的排序优先级顺序,以及,排序表中创建的索引,对排序表中的数据进行排序,包括:

利用排序表中与优先排序字段对应的索引,按照优先排序字段的排序优先级顺序,对排序表中的数据进行排序。

在本实施例中,举例来说,输入原始数据表α,原始数据表α中存储A、B、C三个维度字段,配置排序需求,指定原始数据表中A、B、C三个优先排序字段,其中,A、B、C三个优先排序字段的排序优先级为B优先A,A优先C(即优先级顺序B>A>C),然后根据原始数据表的标识创建排序表,并按照指定的优先排序字段创建索引;利用排序表中与优先排序字段对应的索引,按照优先B字段、再A字段、最后C字段对排序表中同步的数据进行排序,优先展示B字段、再A字段,再C字段,从而满足不同排序字段优先级不同的排序需求,进而适应更多的业务场景,进一步提供多维度排序需求可配置。

由上面技术方案可知,本发明实施例提供的数据排序方法,利用排序表中与优先排序字段对应的索引,按照优先排序字段的排序优先级顺序,对排序表中的数据进行排序,可以满足不同排序字段优先级不同的排序需求,进而适应更多的业务场景,进一步提供多维度排序需求可配置。

在上述实施例的基础上,在本实施例中,接收针对原始数据表的排序请求,包括:

接收用户在排序查询页面输入的针对原始数据表的排序请求;其中,排序请求中的排序需求的输入方式包括按照优先排序字段的排序优先级顺序依次点击排序查询页面上展示的原始数据表的字段,以确定原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序。

在本实施例中,可以理解的是,用户在排序查询页面进行针对排序需求的输入,输入方式为选择排序查询页面上展示的原始数据表的字段,可以按照满足业务场景需求的优先排序字段的排序优先级顺序依次点击,从而确定原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序,自定义配置原始数据表的排序请求。

由上面技术方案可知,本发明实施例提供的数据排序方法,通过接收用户在排序查询页面输入的针对原始数据表的排序请求;其中,排序请求中的排序需求的输入方式包括按照优先排序字段的排序优先级顺序依次点击排序查询页面上展示的原始数据表的字段,以确定原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序,从而使用户能够自定义配置原始数据表的排序请求。

在上述实施例的基础上,在本实施例中,在对排序表中的数据进行排序后,方法还包括:

根据排序结果展示页面的展示容量上限,在排序结果中选取满足展示容量上限且排序靠前的排序内容发送给服务器,以使服务器将接收到的排序内容在排序结果展示页面进行展示。

在本实施例中,可以理解的是,在对排序表中的数据进行排序后,将排序结果通过服务器在排序结果展示页面进行展示,当排序结果的数据量超过展示页面的展示容量上限时,在排序结果中选取满足排序需求、满足展示容量上限且排序靠前的排序内容,将排序结果对应的排序内容在排序结果展示页面进行展示,从而尽最大可能满足用户的排序查询请求,此外,由于排序靠前的排序结果也正是用户关心的排序内容,因此能提升用户体验。

在上述实施例的基础上,在本实施例中,优先排序字段为1个或多个。

在本实施例中,可以理解的是,排序需求中指定的原始数据表的优先排序字段为1个或多个,针对1个或多个优先排序字段,以及排序表中创建的索引,进行排序表中的数据排序。举例来说,排序需求中指定有原始数据表的优先排序字段,如原始数据表的排序字段有评价时间字段、评价内容字段、评价的类别字段,评价需求可以为指定优先排序字段按评价时间字段距离2020年5月10日的远近进行由近到远的排序、也可以为按评价的类别字段进行排序,同时还可以按优先排序字段的排序优先级顺序,如先按评价的类别字段、再按评价时间字段的顺序逐次排序。如配置评价的类别字段的排序优先级高于评价时间字段优先级,需求为先按评价的类别中好评的评价进行排序、再按评价的时间距离查询的查询日的远近进行排序,如评价时间2020年5月1日,评价的类别好评;评价时间2020年5月3日,评价的类别差评;评价时间2020年5月9日,评价的类别好评;评价时间2020年4月1日,评价的类别好评;评价时间2020年4月25日,评价的类别差评;评价时间2020年4月26日,评价的类别无,进行排序。由于配置评价的类别字段的排序优先级高于评价时间字段优先级,用户2020年5月10日进行上述需求排序(需求为先按评价的类别中好评的评价进行排序、再按评价的时间距离查询的查询日的远近进行排序)则展示顺序为:(Ⅰ)评价时间2020年5月9日,评价的类别好评;(Ⅱ)评价时间2020年5月1日,评价的类别好评;(Ⅲ)评价时间2020年4月1日,评价的类别好评;剩余的没有评价中没有好评,则按时间进行排序,(Ⅳ)评价时间2020年5月3日,评价的类别差评;(Ⅴ)评价时间2020年4月26日,评价的类别无;(Ⅵ)评价时间2020年4月25日,评价的类别差评。从而进一步实现多优先排序字段需求可配置。

图3为本发明一实施例提供的数据排序装置的结构示意图,如图3所示,该装置包括:接收模块201、创建模块202、同步模块203和排序模块204,其中:

其中,接收模块201,用于接收针对原始数据表的排序请求,排序请求中携带有原始数据表的标识以及排序需求;其中,排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序;

创建模块202,用于根据排序请求中携带的原始数据表的标识,创建与原始数据表对应的排序表,并根据排序需求中指定的优先排序字段为排序表中对应的字段创建索引;

同步模块203,用于将原始数据表中的数据同步至排序表;

排序模块204,用于根据排序需求中指定的优先排序字段的排序优先级顺序,以及,排序表中创建的索引,对排序表中的数据进行排序。

进一步地,排序模块204,具体用于:

利用排序表中与优先排序字段对应的索引,按照优先排序字段的排序优先级顺序,对排序表中的数据进行排序。

进一步地,接收模块201在接收针对原始数据表的排序请求时,具体用于:

接收用户在排序查询页面输入的针对原始数据表的排序请求;其中,排序请求中的排序需求的输入方式包括按照优先排序字段的排序优先级顺序依次点击排序查询页面上展示的原始数据表的字段,以确定原始数据表中的优先排序字段以及优先排序字段的排序优先级顺序。

进一步地,装置还包括:

展示模块,用于根据排序结果展示页面的展示容量上限,在排序结果中选取满足展示容量上限且排序靠前的排序内容发送给服务器,以使服务器将接收到的排序内容在排序结果展示页面进行展示。

进一步地,优先排序字段为1个或多个。

本发明实施例提供的数据排序装置具体可以用于执行上述实施例的数据排序方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。

基于相同的发明构思,本发明实施例提供一种电子设备,参见图4,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;

其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:接收针对原始数据表的排序请求,排序请求中携带有原始数据表的标识以及排序需求;其中,排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序;根据排序请求中携带的原始数据表的标识,创建与原始数据表对应的排序表,并根据排序需求中指定的优先排序字段为排序表中对应的字段创建索引;将原始数据表中的数据同步至排序表;根据排序需求中指定的优先排序字段的排序优先级顺序,以及,排序表中创建的索引,对排序表中的数据进行排序。

基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,接收针对原始数据表的排序请求,排序请求中携带有原始数据表的标识以及排序需求;其中,排序需求中指定有原始数据表的优先排序字段以及优先排序字段的排序优先级顺序;根据排序请求中携带的原始数据表的标识,创建与原始数据表对应的排序表,并根据排序需求中指定的优先排序字段为排序表中对应的字段创建索引;将原始数据表中的数据同步至排序表;根据排序需求中指定的优先排序字段的排序优先级顺序,以及,排序表中创建的索引,对排序表中的数据进行排序。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 数据排序方法、装置、电子介质及存储介质
  • 数据排序方法、数据排序装置、电子设备及可读存储介质
技术分类

06120112502485