信息推送方法、装置、电子设备及可读介质
技术领域
本申请涉及互联网领域,尤其涉及一种信息推送方法、装置、电子设备及计算机可读介质。
背景技术
在订单业务系统中,针对不同的商品可设置不同的业务活动供用户参与,例如分期付款、优惠券、支付金额减免以及分期手续费减免等。在针对各个场景计算用户能使用的业务活动时,现有技术是使用java多线程技术,对全量业务活动进行并行实时规则计算,通过计算结果匹配出符合当前订单属性的业务活动后将其推送给用户,供用户选择使用。
然而,现有技术采用多线程计算方式对业务活动进行计算,其对应用服务器多处理器、处理器二级缓存(L2Cache)等的计算能力要求非常高。此外,面对每一订单请求,现有技术均需要对全量营销活动进行并行实时计算,导致线程池的大小成为业务活动数的瓶颈,并且处理器处理线程调度的能力,成为应用响应并发能力的瓶颈。
发明内容
有鉴于此,本申请提供一种信息推送方法、装置、电子设备及计算机可读介质,通过将目标索引信息与待推广信息以倒排索引的形式关联并进行查找,能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的第一方面,提出一种信息推送方法,该方法包括:获取用户的订单信息;通过所述订单信息确定目标索引信息;通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合;通过所述多个第一信息集合的交集确定待推广信息;以及将所述待推广信息推送至用户端。
在本申请的一种示例性实施例中,还包括:根据所述至少一个索引信息、所述至少一个索引信息对应的至少一个规则信息以及所述至少一个规则信息对应的至少一个待推广信息生成倒排索引规则库,其中,所述至少一个规则信息对应的所述至少一个待推广信息满足所述至少一个规则信息的规则条件。
在本申请的一种示例性实施例中,通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合包括:根据所述目标索引信息确定其在所述倒排索引规则库中对应的至少一个规则信息;基于所述目标索引与所述至少一个规则信息的规则条件在所述至少一个规则信息中筛选获得至少一个目标规则信息;以及在所述倒排索引规则库中提取所述至少一个目标规则信息对应的至少一个待推广信息,以生成至少一个第一信息集合。
在本申请的一种示例性实施例中,所述规则信息包括以下情况的至少一种:肯定式、否定式、规则不限制、数值区间。
在本申请的一种示例性实施例中,根据所述至少一个索引信息、所述至少一个索引信息对应的至少一个规则信息以及所述至少一个规则信息对应的至少一个待推广信息生成倒排索引规则库包括:获取每一索引信息对应的至少一个规则信息;获取满足每一规则信息的规则条件的至少一个待推广信息;以及根据所述至少一个索引信息、所述至少一个规则信息以及所述至少一个个待推广信息生成倒排索引规则库。
在本申请的一种示例性实施例中,还包括:根据待推广信息的状态实时更新倒排索引规则库。
在本申请的一种示例性实施例中,根据待推广信息的状态实时更新所述倒排索引规则库包括:将新上架的待推广信息加入所述倒排索引规则库;以及根据待推广信息的状态实时更新所述倒排索引规则库。
在本申请的一种示例性实施例中,根据待推广信息的状态实时更新倒排索引规则库包括:通过分布式应用程序协调服务(zookeeper)系统和任务调度库(spring quartz)框架更新倒排索引规则库。
根据本申请实施例的第二方面,提出一种信息推送装置,该装置包括:订单模块,用于获取用户的订单信息;索引模块,用于通过所述订单信息确定目标索引信息;第一信息模块,用于通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合;待推广信息模块,用于通过所述多个第一信息集合的交集确定待推广信息;以及推送模块,用于将所述待推广信息推送至用户端。
在本申请的一种示例性实施例中,还包括:倒排索引规则库模块,用于根据所述至少一个索引信息、所述至少一个索引信息对应的至少一个规则信息以及所述至少一个规则信息对应的至少一个待推广信息生成倒排索引规则库,其中,所述至少一个规则信息对应的所述至少一个待推广信息满足所述至少一个规则信息的规则条件;以及更新模块,用于根据待推广信息的状态实时更新倒排索引规则库。
根据本申请实施例的第三方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的信息推送方法。
根据本申请实施例的第四方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的信息推送方法。
根据本申请的信息推送方法、装置、电子设备及计算机可读介质,通过将目标索引信息与待推广信息以倒排索引的形式关联并进行查找,能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种信息推送方法及装置的系统框图。
图2是根据一示例性实施例示出的一种信息推送方法的流程图。
图3是根据一示例性实施例示出的一种信息推送方法的流程图。
图4是根据一示例性实施例示出的一种信息推送方法的流程图。
图5是根据另一示例性实施例示出的一种信息推送方法的示意图。
图6是根据另一示例性实施例示出的一种信息推送方法的流程图。
图7是根据一示例性实施例示出的一种信息推送装置的框图。
图8是根据另一示例性实施例示出的一种信息推送装置的框图。
图9是根据一示例性实施例示出的一种用于信息推送的电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图仅为本发明的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图对本发明示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种信息推送方法及装置的系统框图。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的信息推送系统提供支持的后台管理服务器(仅为示例)。后台管理服务器可以获取用户的订单信息,并通过订单信息计算得到其匹配的待推广信息等处理,并将处理结果(例如待推广信息--仅为示例)反馈给终端设备。
服务器105可例如获取用户的订单信息;服务器105可例如通过所述订单信息确定目标索引信息;服务器105可例如通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合;服务器105可例如通过所述多个第一信息集合的交集确定待推广信息;服务器105可例如将所述待推广信息推送至用户端。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为本申请中的信息推送任务提交系统,用于获取将要执行信息推送命令的任务;以及服务器105中的一部分还可例如作为本申请中的信息推送系统,用于获取用户的订单信息;通过所述订单信息确定目标索引信息;通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合;通过所述多个第一信息集合的交集确定待推广信息;以及将所述待推广信息推送至用户端。
需要说明的是,本申请实施例所提供的信息推送的方法可以由服务器105执行,相应地,信息推送的装置可以设置于服务器105中。而提供给用户用于提交信息推送任务与信息推送结果的请求端一般位于终端设备101、102、103中。
图2是根据一示例性实施例示出的一种信息推送方法的流程图。根据图2示出的信息推送方法,通过将目标索引信息与待推广信息以倒排索引的形式关联并进行查找,能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。下面,将参照图2,对本申请示例性实施例中的信息推送方法进行说明。
在步骤S210中,获取用户的订单信息。其中,可例如在用户选取购物车商品并生成订单时,获取当前用户的订单信息。订单信息可以包括当前订单的商品信息、支付金额等,商品信息可例如包括商品编码、商品所归属的店铺信息、商品单价与商品数量等,但本发明对商品信息包含的具体内容并不作特殊限定。
在步骤S220中,通过所述订单信息确定目标索引信息。其中,可根据倒排索引规则库中包含的索引确定所述订单信息中的索引信息。所述索引信息可以包含索引标签以及当前订单信息对应的索引内容。
在步骤S230中,通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合。其中,第一信息集合可以是当前订单针对每一索引信息确定的可参与的业务活动集合,其可通过在倒排索引规则库中通过索引检索得到。
根据示例实施例,可以根据所述至少一个索引信息、所述至少一个索引信息对应的至少一个规则信息以及所述至少一个规则信息对应的至少一个待推广信息生成倒排索引规则库,其中,所述至少一个规则信息对应的所述至少一个待推广信息满足所述至少一个规则信息的规则条件。倒排索引也叫反向索引,其与正向索引相对,为两种不同的索引方法。正向索引方式为通过以文档ID为关键字(即索引信息),表中记录文档中每个字的位置信息以及次数信息;而倒排索引以字或词为关键字,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。在本示例性实施例中,索引信息(即关键字)可例如通过订单信息确定,例如可包含商品编码(例如SKU码)、商品种类、店铺编码、店铺种类、订单金额等,但本发明对索引信息包含的具体内容并不作特殊限定,此处仅作为索引格式的示例。在前述举例中,SKU(Stock Keeping Unit)为库存量单位,是对于大型连锁超市(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU码。而每一索引信息可对应多个规则信息;每一规则信息可对应符合该规则信息的多个待推广信息。
根据示例实施例,所述规则信息可包括以下情况的至少一种:肯定式、否定式、规则不限制、数值区间。其中,肯定式规则信息可为当前索引信息满足某一条件的规则,例如商品编码对应的某一肯定式规则信息可以表示为:商品编码是XXXXX。否定式规则信息与肯定式规则信息相对,例如可表示为:商品编码不是XXXXX。规则不限制可为对当前索引信息不作任何限制的规则,例如店铺编码对应的规则不限制可表示为:店铺编码不限制。数值区间可表示对当前索引信息处于某一范围的规则,例如订单金额对应的某一数值区间可以表示为:订单金额大于1000。
根据示例实施例,步骤S230可根据所述目标索引信息确定其在所述倒排索引规则库中对应的至少一个规则信息;基于所述目标索引与所述至少一个规则信息的规则条件在所述至少一个规则信息中筛选获得至少一个目标规则信息;以及在所述倒排索引规则库中提取所述至少一个目标规则信息对应的至少一个待推广信息,以生成至少一个第一信息集合。其中,每一索引信息对应的多个第一规则信息可以包含多种类型,例如肯定式、否定式、规则不限制以及数值区间。例如,商品编码对应的多个第一规则信息可以包含与当前索引信息相关的所有规则信息。在根据目标索引信息与其对应的多个第一规则信息确定符合条件的至少一个目标规则信息时,可在目标索引信息相关的所有规则信息中查找与目标索引信息相关的至少一个规则信息。例如,当前订单的商品编码为123,商品编码对应的多个第一规则信息可以包含:商品编码是123、商品编码不是123、商品编码不限制以及商品编码是321,通过本次筛选,可以确定符合条件的多个规则信息为:商品编码是123以及商品编码不限制。在根据每一索引信息的多个规则信息在所述倒排索引规则库中确定多个第一信息集合时,每一规则信息可对应符合该规则信息的多个待推广信息,例如,满足商品编码是123的商品可以参与的多个活动可组成该规则信息的多个待推广信息,所述多个待推广信息组成了当前规则信息对应的第一信息集合。
在步骤S240中,通过所述多个第一信息集合的交集确定待推广信息。其中,多个第一信息集合可分别为当前订单信息中,单独考虑每一索引信息时,该订单可参与的所有待推广信息的集合。将多个第一信息集合作交集运算,可以得到当前订单可参与的待推广信息。
在步骤S250中,将所述待推广信息推送至用户端。
根据示例实施例,所述倒排索引规则库的生成可以包括:获取每一索引信息对应的至少一个规则信息;获取满足每一规则信息的至少一个待推广信息;以及根据所述至少一个索引信息、所述至少一个规则信息以及所述至少一个个待推广信息生成倒排索引规则库。其中,还可根据待推广信息匹配的规则信息为基础生成倒排索引规则库,例如,若某一待推广信息限定了商品编码为19803952059,商品类别为不含2677条件,店铺类别是自营条件,以及订单金额小于1000,则可在倒排索引规则库中商品编码、商品类别、店铺编码、店铺类别、订单金额等索引中均创建相应的规则信息,并将该待推广信息与当前规则信息进行关联;当对下一条待推广信息进行处理时,例如其也满足商品编码条件为19803952059,则可将该待推广信息与商品编码(索引信息)对应的“商品编码为19803952059”的规则信息进行关联。至此,商品编码对应的“商品编码为19803952059”的规则信息已关联两个待推广信息。
根据示例实施例,还可根据待推广信息的状态实时更新倒排索引规则库。其中,可将新上架的待推广信息加入所述倒排索引规则库;以及根据待推广信息的状态实时更新所述倒排索引规则库。其中,将新上架的待推广信息加入所述倒排索引规则库的方式可参看前述有关倒排索引规则库的生成方式,在此不再赘述。待推广信息的状态可例如记录在游标记录表中,并将审核生效的活动加入游标记录表中,以及将失效和关闭的活动在游标记录表中标记为活动下架。在对待推广信息的状态实时更新倒排索引规则库时,可实时处理待推广信息的上下架状态任务。其中,游标是一段私有的数据库工作区,也就是一段内存区域,用于暂时存放受数据库语句影响到的数据。
根据示例实施例,可通过分布式应用程序协调服务(zookeeper)系统和任务调度库(spring quartz)框架更新倒排索引规则库。其中,zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper可封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Spring是一个开源框架,是为解决企业应用开发的复杂性而创建的。quartz是一个由java编写的任务调度库,由OpenSymphony组织开源出来,其可用于处理定时任务。
根据本申请的信息推送方法,通过针对每一待推广信息搭建倒排索引规则库,并通过用户订单信息查找相应属性下的多个规则信息,用以推送订单信息匹配的待推广信息。本申请的信息推送方法通过将目标索引信息与待推广信息以倒排索引的形式关联并进行查找,能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。
图3是根据一示例性实施例示出的一种信息推送方法的流程图。参照图3,信息推送方法可以包括:
步骤S310,根据目标索引信息确定其在所述倒排索引规则库中对应的至少一个规则信息。其中,每一索引信息中可包含多个第一规则信息,所述多个规则信息的规则均与当前索引信息为主要属性。例如,商品编码的索引信息中,其包含的多个第一规则信息均以商品编码为主题。
步骤S320,基于所述目标索引与所述至少一规则信息的规则条件在所述至少一个规则信息中筛选获得至少一个目标规则信息。其中,可在每一索引信息中查找与索引内容匹配的至少一个规则信息。例如,商品编码对应的至少一个第一规则信息可以包含:商品编码是123、商品编码不是123、商品编码不限制以及商品编码是321,通过本次筛选,可以确定符合条件的至少一个目标规则信息为:商品编码是123以及商品编码不限制。
步骤S330,在所述倒排索引规则库中提取所述至少一个目标规则信息对应的至少一个待推广信息,以生成至少一个第一信息集合。其中,每一规则信息可关联符合该规则信息的规则条件的至少一个待推广信息,即每一规则信息对应的第一信息集合。
图4是根据一示例性实施例示出的一种信息推送方法的流程图。参照图4,倒排索引规则库的生成方法可以包括:
步骤S410,获取每一索引信息对应的至少一个规则信息。其中,至少一个规则信息均以当前索引信息为主题。如图5所示,商品编码对应的多个规则信息均以商品编码为主题,例如:商品编码是19803952059、商品编码不是19803952059等。
步骤S420,获取满足每一规则信息的规则条件的至少一个待推广信息。其中,多个规则信息均关联有满足该规则的多个待推广信息。如图5所示,规则信息为“商品编码为19803952059”,满足该规则的有2个待推广信息:19558337605023_33736,8555967410291_34561,例如商品编码为19803952059的商品既可参与满减活动,又可参与分期免息活动。
步骤S430,根据所述至少一个索引信息、所述至少一个规则信息以及所述至少一个待推广信息生成倒排索引规则库。其中,可通过每一索引信息与多个规则信息的对应关系,以及每一规则信息与多个待推广信息的关联关系,生成倒排索引规则库。
图6是根据另一示例性实施例示出的一种信息推送方法的流程图。参照图6,信息推送方法可以包括:
步骤S610,用户收银台支付,获取用户订单信息。例如,订单信息可包含:商品编码:19803952059,商品类别:1560,店铺编码:0,订单金额:399。订单信息可例如提交至营销交易系统,其可在收银台支付时向用户筛选和验证使用待推广活动。
步骤S620,调用倒排索引规则库,每个活动规则开启单独线程找寻该订单属性索引及索引对应的多个第一信息集合。参考图5所示的倒排索引规则库示意图,本示例性实施例宏,商品编码命中肯定式规则信息19803952059:[19558337605023_33736,8555967410291_34561];商品类别为1560,无命中的肯定式索引,其命中否定式规则信息2677_no:[19558337605023_33736];店铺编码为0,命中的不限制规则信息Without:[19558337605023_33736,31635021311012_33960,……];店铺编码为0是自营商品,命中是否自营的的肯定式规则信息Y:[19558337605023_33736,8555967410291_34561];订单金额为399,命中规则信息为1000_before:[19558337605023_33736,8555967410291_34561]。
步骤S630,并发匹配所有规则信息的多个第一信息集合后,将多个第一信息集合作交集运算,以获得待推广信息,并将待推广信息推送至用户端。其中,只有每个索引信息的匹配结果都命中的待推广信息才是本次支付订单可以参与使用的。例如,将步骤S620中得到多个第一信息集合作交集运算后,其结果为19558337605023_33736,即当前订单可参与的待推广活动。
根据本申请的信息推送方法,通过针对每一待推广信息搭建倒排索引规则库,并通过用户订单信息查找相应属性下的多个规则信息,用以推送订单信息匹配的待推广信息。本申请的信息推送方法能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。综上,本申请的信息推送方法通过创新搭建倒排索引规则库,可解决活动数量处理器消耗过多、活动数量上限瓶颈问题。同时,本申请的倒排索引规则库能支持肯定式、否定式、规则不限制、数值区间等类型规则,可满足多种营销活动的需求。此外,本申请的信息推送方法可保证服务的高可用性、高并发处理能力。营销活动的上下架与其倒排索引自动生成方式可实时生效与监控,以保证服务质量。
图7是根据一示例性实施例示出的一种信息推送置的框图。参照图7,信息推送装置可以包括:订单模块710、索引模块720、第一信息模块730、待推广信息模块740以及推送模块750。
在信息推送装置中,订单模块710用于获取用户的订单信息。其中,可例如在用户选取购物车商品并生成订单时,获取当前用户的订单信息。订单信息可以包括当前订单的商品信息、支付金额等,商品信息可例如包括商品编码、商品所归属的店铺信息、商品单价与商品数量等,但本发明对商品信息包含的具体内容并不作特殊限定。
索引模块720用于通过所述订单信息确定目标索引信息。其中,可根据倒排索引规则库中包含的索引确定所述订单信息中的索引信息。所述索引信息可以包含索引标签以及当前订单信息对应的索引内容。
第一信息模块730用于通过所述目标索引信息在倒排索引规则库中确定至少一个第一信息集合,所述倒排索引规则库包括至少一个索引信息以及所述至少一个索引信息对应的至少一个第一信息集合。其中,第一信息集合可以是当前订单针对每一索引信息确定的可参与的营销活动,其可通过在倒排索引规则库中通过索引检索得到。
根据示例实施例,所述规则信息可包括以下情况的至少一种:肯定式、否定式、规则不限制、数值区间。
根据示例实施例,第一信息模块730用于根据所述目标索引信息确定其在所述倒排索引规则库中对应的至少一个规则信息;基于所述目标索引与所述至少一个规则信息的规则条件在所述至少一个规则信息中筛选获得至少一个目标规则信息;以及在所述倒排索引规则库中提取所述至少一个目标规则信息对应的至少一个待推广信息,以生成至少一个第一信息集合。
待推广信息模块740用于通过所述多个第一信息集合的交集确定待推广信息。其中,多个第一信息集合可分别为当前订单信息中,单独考虑每一索引信息时,该订单可参与的所有待推广信息的集合。将多个第一信息集合作交集运算,可以得到当前订单可参与的待推广信息。
推送模块750用于将所述带推广信息推送至用户端。
根据示例实施例,信息推送装置还可包括倒排索引规则库模块以及更新模块。倒排索引规则库模块用于根据所述至少一个索引信息、所述至少一个索引信息对应的至少一个规则信息以及所述至少一个规则信息对应的至少一个待推广信息生成倒排索引规则库,其中,所述至少一个规则信息对应的所述至少一个待推广信息满足所述至少一个规则信息的规则条件。更新模块,用于根据待推广信息的状态实时更新倒排索引规则库。
根据示例实施例,倒排索引规则库模块用于获取每一索引信息对应的至少一个规则信息;获取满足每一规则信息的至少一个待推广信息;以及根据所述至少一个索引信息、所述至少一个规则信息以及所述至少一个个待推广信息生成倒排索引规则库。
根据本申请的信息推送装置,通过针对每一待推广信息搭建倒排索引规则库,并通过用户订单信息查找相应属性下的多个规则信息,用以推送订单信息匹配的待推广信息。本申请的信息推送方法通过将目标索引信息与待推广信息以倒排索引的形式关联并进行查找,能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。
图8是根据另一示例性实施例示出的一种信息推送置的框图。参照图8,信息推送装置可以包括:待推广信息运营管理模块810、上下架状态任务模块820、活动与规则信息存储模块830、营销倒排规则引擎840以及营销交易模块850。
在信息推送装置中,待推广信息运营管理模块810可用于创建待推广信息,以及删除各个规则信息下的待推广信息。其中,当待推广信息过期及关闭时,待推广信息运营管理模块810可用于触发同步待推广信息的下架操作;当待推广信息上架时,待推广信息运营管理模块810可用于触发同步新的规则信息、创建相应索引的操作。
上下架状态任务模块820可用于在待推广信息运营管理模块810创建和维护时进行状态更新,并将审核生效的待推广信息加入活动与规则信息存储模块830的游标记录表中,以及将失效和关闭的待推广信息在游标记录表中标记为活动下架。该上下架状态任务模块,可做到秒级监控和分布式管理,可例如默认启动集群中一台服务处理活动上下架状态任务,当这台服务挂起或处于不可用状态时,可自动启动集群中任意一台机器,并发出短信报警,以保证待推广信息的状态时效性。
营销倒排规则引擎840可用于在内存中存储并维护所有规则信息。例如,待推广信息19558337605023_33736限定了商品编码是19803952059,商品种类不含2677条件,是否自营是自营条件,以及订单金额小于1000,则可在所有索引信息如商品编码、商品类别、店铺编码、是否自营以及订单金额中创建相应的待推广信息,商品编码-肯定式规则信息:{"19803952059":["19558337605023_33736"]}、商品编码-否定式规则信息:{"2677":["19558337605023_33736"]}、店铺编码-规则不限制:["19558337605023_33736"]、是否自营-肯定式规则信息:{"Y":["19558337605023_33736"]}、订单金额-数值区间规则信息:{"1000_before":["19558337605023_33736"]},其创建结果可参照图5所示。
其中,规则信息的创建可由营销倒排规则引擎840各个服务器轮询活动与规则信息存储模块830的游标记录表,待推广活动审核上架即创建索引,待推广活动关闭下架即从全部规则索引中删除相应的活动内容。
营销交易模块850可在收银台支付时向用户筛选和验证使用待推广活动。营销交易模块850作为用户使用营销活动的入口系统,可在系统架构上与活动运营、存储、活动上下架任务管理等进行物理隔离,以实现读写分离和高可用性。
根据本申请的信息推送装置,通过针对每一待推广信息搭建倒排索引规则库,并通过用户订单信息查找相应属性下的多个规则信息,用以推送订单信息匹配的待推广信息。本申请的信息推送装置能够固定线程数、减小计算复杂度,突破计算上限瓶颈;并降低对处理器的依赖性,以使其可部署至虚拟机中。综上,本申请的信息推送装置通过采用实时创建索引技术,并固定线程数,可降低服务器对处理器的依赖,以使其可部署至虚拟机和docker(开源的应用容器引擎)。此外,针对对每一待推广信息进行索引倒排匹配,即每个营销规则对应一个规则信息,每一个营销活动都会有全量规则信息索引。这样对于一个订单请求,只需通过营销规则在订单、用户属性中找寻规则信息下的营销活动即可,可将原有的O(n)计算复杂度,减少成O(1),突破了n的计算上限瓶颈。
图9是根据一示例性实施例示出的一种用于商品推荐的电子设备的框图。
下面参照图9来描述根据本申请的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从储存部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。例如,中央处理单元901可以执行如图2、图3、图4、图6中的一个或多个所示的步骤。
在RAM 903中,还存储有系统操作所需的各种程序和数据,例如订单信息、规则信息以及待推广信息等。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括触摸屏、键盘等的输入部分906;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分907;包括闪存等的储存部分908;以及包括诸如无线网卡、高速网卡等的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如半导体存储器、磁盘等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入储存部分908。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本发明实施例的方法,例如图2、图3、图4、图6中的一个或多个所示的步骤。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。