一种对海量热点页面筛选排序的算法的制作方法

文档序号:6469185阅读:208来源:国知局

专利名称::一种对海量热点页面筛选排序的算法的制作方法
技术领域
:本发明属于计算机数据处理领域,尤其涉及一种对海量热点页面(URL)筛选排序的算法。运用此算法可以高效实现从现网的站点页面中按排名要求(如访问次数最多的前100名)筛选出相应的热点站点页面,并在此基础上对选中的站点页面进行排序。
背景技术
:随着互联网应用的快速发展,对网站的相关指标进行统计分析,从而掌握各种业务的开展情况己成为运营商开展WAP(无线应用协议)业务的有用工具;然而实现从现网中的URL中过滤出访问次数最多的前100名之类的统计和排名,从目前来看,一般的实现方法是对网络中所有的站点页面的访问次数进行排名,然后取出排名最靠前的100名。这种排名算法看起来直观、易于实现,并且在站点页面数量不是很大的情况下,可以保证排序的效率。但是,目前网络应用空前扩展,站点页面数量成指数倍增长,这种排名算法的效率已与网络技术的发展速度不相适应,已远远不能满足实际的需要。
发明内容本发明的目的是针对目前的排名算法在处理站点页面数量较多的最值排名中效率不高的问题,提供一种对海量热点页面筛选排序的算法,即采用一些算法和技术,使在这种情况的排名可以在对URL访问次数过滤的基础上进行,排除排名对象数量多少对排名效率的影响,极大地提高了排名的效率和运行的稳定性。本发明的目的是这样实现的本发明主要包括一种统计表组织结构、一种统计采样算法和一种筛选算法。一、一种用于记录统计信息的统计表组织结构统计表使用hash+rb_tree构造,即主表是hash,在每个bucket中使用一个rb_tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。二、一种统计采样算法主要是设定最低采样门限,根据站点页面査找(或创建)统计节点,当在统计表中有与该站点页面对应的统计节点时,统计表中的"l小时内累计点击总数"加1且与该站点页面对应的采集节点中的"节点创建以来的点击次数"加1;反之,若统计表中没有与该站点页面对应的统计节点,则在"记录表中统计节点的总数目"小于最低采样门限的情况下,直接在统计表中添加新的采集节点,否则启动节点采样过程,使采样节点的增长速度减缓,确保排序的效率和精度。三、一种筛选算法主要是设定最低筛选门限,当统计表内节点数目大于最低筛选门限时,筛选过程启动。筛选过程首先预估有效节点数目、预估点击次数、合理选择筛选因子,然后在对上述指标简单运算的基础上,合理确定筛选条件,开始筛选。若一次筛选完成后,尚未达到筛选要求,则在上一次筛选的基础上,基于上一次的经验,对筛选条件适当修正,从而不断縮小筛选目标。如此反复筛选,直到满足筛选要求。本发明具有下列优点和积极效果1、本发明通过对统计表的组织结构和统计节点的组织结构的设计,可以简明、实用地记录URL的统计信息;2、通过高效的采集及筛选算法的设计,在对站点页面访问次数过滤的基础上进行排名,即使在站点页面数量较多的情况下,也能实现高效、精确排名,极大地提高了排名的效率;3、该思想的扩展也可应用于统计目标数量大而只要求对最前或最后N名排名的情况。图1是本算法的总体模块结构图;图2是统计采样模块的工作流程图;图3是预估子模块的工作流程图;图4是首次筛选子模块的工作流程图;图5是再次筛选模块的工作流程图;图6是调整筛选子模块的工作流程图。其中1—统计采样模块,1.l一统计子模块,1.1—采样子模块;2—筛选模块,2.l—预估子模块,2.2—首次筛选子模块,2.3—再次筛选子模块,2.4—调整筛选子模块;3—排名模块。英译汉URL—UniformResourceLocator,WWW上用来标识一信息页的语法形式,本文译为海量热点页面;WAP—WirelessApplicationProtocol,无线应用协议。具体的实施方式以下结合附图和实施例详细说明一、统计表组织结构前述,统计表使用hash+rb—tree构造,即主表是hash,在每个bucket中使用一个rb—tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。在hash主表中维护如下数据统计起始时间、统计结束时间、1小时内累计点击总数、记录表中统计节点的总数目;rb—tree节点中维护如下数据网站url、节点创建以来的点击次数、节点的预估点击次数、节点的创建时间。参见表l,它描述了统计表的组织结构。表l:统计表的组织结构<table>tableseeoriginaldocumentpage6</column></row><table>统计表中各字段的意义如下start—time统计起始时间(以秒为单位);end—time统计结束时间;total—count1小时内累计点击总数;nodes一rmm记录表中统计节点的总数目。参见表2,它描述了统计表中统计节点的组织结构。表2:统计表中统计节点的组织结构<table>tableseeoriginaldocumentpage6</column></row><table>统计节点中各字段的意义如下-url站点地址;xtotal_count节点创建以来的点击次数;xv—count节点的预估点击次数(根据节点点击速率,节点最大寿命计算);xstart—time记录节点的创建时间。二、对海量热点页面筛选排序算法的总体模块结构参见图1,对海量热点页面筛选排序算法的总体模块结构包括现有技术的排名模块3,设置有统计采样模块1和筛选模块2;该算法按照统计采样模块l、筛选模块2、排名模块3依次进行;所述的统计采样模块1包括统计子模块1.1和采样子模块1.2;所述的筛选模块2包括依次进行的预估子模块2.1、首次筛选子模块2.2、再次筛选子模块2.3和调整筛选子模块2.4。具体地说①对海量热点页面统计、采样1该算法首先对现网中所有的站点页面进行统计1.1,当统计的指标达到一定的限度后,启动采样流程1.2,以减小系统的处理压力,并确保统计的精确度。②对采样后的页面进行筛选2对于采样之后的页面,该算法确定筛选条件对这些页面进行预估筛选2.1,又进行首次筛选2.2,在筛选之后仍不能满足排名要求的情况下,重新确定筛选规则,进行再次筛选2.3,在不符合重新确定筛选规则的条件下,进行调整筛选2.4。③对候选页面进行排名3在筛选出符合排名要求的页面之后,启动排名流程,对页面进行排名。三、模块的工作流程1、统计采样模块l的工作流程参见图2,统计采样模块1的工作流程包括下列步骤-①模块开始初始化10模块初始化全局变量XX,设定最低采样门限sample—enablejowlimit和最低筛选门限fi1ter_enable—lowlimit;②判断当前是否存在于统计表中11是则将统计表中的total—count加1,同时将统计表中与该站点页面对应的统计节点中的字段x_total_count加l12;否则跳转到步骤③,进入采样流程;③判断节点数目nodes—num是否大于设定的最低采样门限sample一enable—lowlimit13,是则跳转到步骤④,构造采样模型,为采样做准备;否则,在统计表中创建新的采集节点,并将统计表中的nodes—num字段加l16。④构造抽样模型当nodes_num大于sample—enable—lowlimit,为提高统计的精度和效率,构造抽样模型;构造抽样模型的过程通过如下三个步骤实现14:z=(nodes_num-sample—enable—lowlimit)/2000;sample—module=z*z+2;XX++;站点页面采样利用步骤④构建的采样模型,通过(xxmodsample—module)对站点页面采样15-当(xxmodsample—module)==0时,在统计表中创建新的采集节点,并将统计表中的nodes一num字段加116;否则,抛弃该站点页面,以减小统计负荷,提高统计效率和精度;⑥判断统计表中统计节点的数目nodes—mim是否大于最低筛选门限filter—enable—lowlimit17;若nodes—num大于filter—enable—lowlimit,则激活站点页面筛选流程,否则,返回,进入下一个统计流程。2、筛选模块2的工作流程(1)预估子模块2.1的工作流程参见图3,预估子模块2.1(为首次筛选子模块2.2做准备的)的工作流程包括下列步骤①模块开始初始化模块获取当前时间current_time并设定最小统计时间20;②判断current—time是否大于统计结束时间end—time21;若current—time大于end—time,贝'J先使current—time等于end—time,然后对该统计节点计算remain—time禾口deta—time;否贝U,直接对该统i十节点计算remain—time禾口deta—time,remain—time禾口deta—time的计算方法22如下remain—time=(end—time-xstart—time)deta—time=(current—time-xstart—time)③判断步骤②计算的deta—time是否大于等于最小统计时间23;若deta—time大于等于最小统计时间,则该节点为有效节点,同时计算该节点的xv_count=(xtotal—count/deta一time)*remain—time;否则,该节点为无效节点,不参与该次预估;判断步骤(D刚刚处理的节点是否是统计表中的最后一个节点24;若是刚刚处理的节点是统计表中的最后一个节点,则汇总所有有效节点的xv—count值,得到总体的预估点击次数v—count,和有效节点数目v—nodes;反之,则跳转到步骤②,开始下一次预估流程。(2)首次筛选子模块2.2参见图4,首次筛选子模块2.2的工作流程包括下列步骤①模块开始初始化模块从预估流程得到总体的预估点击次数v—count和有效节点数目v_nodes30;②判断有效节点数目是否小于100(排名要求)31;若有效节点数目小于100,则直接返回,不需对节点进行筛选;否则,则跳转到步骤③,进入筛选流程;③初始化筛选流程筛选流程首先设定筛选因子factor,初始化v—share和v—share—nodes;然后通过v—rule=(v—count/vnodes)*factor、v—rule2=(v_count/100)设置初始的筛选指标(32、33);④根据筛选条件,逐个筛选统计节点对于统计表中的每一个统计节点首先判断xv—count是否小于v—rule(34)。若xv—count小于v_rule,则该节点成为待筛选节点;否则,该节点是候选节点;然后判断上述节点中的xv—count〉是否大于v—rule235;若xv—count大于v—rule2,贝U先执行v—share+二xv一count、v—share—nodes++,然后跳转到步骤⑤;反之,则直接跳转到步骤⑤;⑤判断刚刚处理的节点是否是统计表中的最后一个节点36;若刚刚处理的节点是统计表中的最后一个节点,则跳转到步骤⑥,结束此论筛选;否则,则跳转到步骤④,对统计表中该节点之后的节点进行筛选;⑥判断侯选节点的数目是否小于10037;若侯选节点的数目小于100,贝怀能满足"前100名"的要求,跳转到步骤36⑥,调整筛选指标,在待筛选节点中增补侯选节点;反之,则结束筛选流程,对所有侯选节点排序。步骤36⑦,判断v—share是否大于0,重新确定筛选指标37;如果v—share大于0,则按照规则重新确定筛选指标,对所有待筛选节点进行遍历筛选,以增补侯选节点310;反之,则调小factor,重新确定筛选指标,对所有待筛选节点进行遍历筛选,以增补侯选节点(39)。(3)再次筛选子模块2.3参见图5,再次筛选子模块2.3的工作流程包括下列步骤①模块幵始初始化基于前述统计和筛选流程,模块得到总体的预估点击次数v......ccxmt(v—count=v_c()unt—v—share),并在此基础上,重新设置新的筛选指标v—rule=(v—count/v—nodes)*factor、v一rule2=(v—count/100)51、52;②遍历所有待筛选节点,增补侯选节点模块根据步骤①确定的筛选规则,遍历所有待筛选节点,根据条件縮小待筛选节点数目,即若XV—count小于v—rule,则该节点成为待筛选节点;否则该节点是候选节点53;若xv—.count大于vru丄e2,贝[Jv.—share十:二xv......count,v.......share......nodes+十54、55;③判断当前处理节点是否是待筛选节点中的最后.-个节点,若当前节点是待筛选节点中的最后-个节点,则结柬该筛选流程;否则跳转到歩骤②,对下一个节点进行筛选。(4)调整筛选子模块2.4参见图6,调整筛选子模块2.4的工作流程包括下列步骤①模块开始初始化基于前述统计、采样和筛选流程,调小factor,并在此基础上,重新设置新的筛选指标v_rule=(v_count/v—nodes)承factor41、42;②遍历所有待筛选节点,增补侯选节点模块根据步骤①确定的筛选规则,遍历所有待筛选节点,根据条件縮小待筛选节点数目43,即若xv—count小于v—rule,该节点成为待筛选节点;否则,该节点是侯选节点;③判断当前处理节点是否是待筛选节点中的最后一个节点,若当前节点是待筛选节点中的最后一个节点,则结束该筛选流程;否则跳转到步骤②,对下一个节点进行筛选。权利要求1、一种用于记录统计信息的统计表组织结构,其特征在于统计表使用hash+rb_tree构造,即主表是hash,在每个bucket中使用一个rb_tree来组织统计节点,用于保存总的统计指标信息及各统计项的关键信息。2、按权利要求1所述的统计表组织结构,其特征在于在hash主表中维护如下数据统计起始时间、统计结束时间、1小时内累计点击总数、记录表中统计节点的总数目;rb—tree节点中维护如下数据网站url、节点创建以来的点击次数、节点的预估点击次数、节点的创建时间。3、一种基于权利要求1所述的统计表组织结构的对海量热点页面筛选排序的算法总模块,包括排名模块(3),其特征在于设置有统计采样模块(1)和筛选模块(2);该算法按照统计采样模块(1)、筛选模块(2)、排名模块(3)依次进行;所述的统计采样模块(1)包括统计子模块(1.1)和采样子模块(1.2);所述的筛选模块(2)包括依次进行的预估子模块(2.1)、首次筛选子模块(2.2)、再次筛选子模块(2.3)和调整筛选子模块(2.4)。4、按权利要求3所述的算法总模块,其特征在于-统计采样模块(1)的工作流程如图2。5、按权利要求3所述的算法总模块,其特征在于-预估子模块(2.1)的工作流程如图3。6、按权利要求3所述的算法总模块,其特征在于首次筛选子模块(2.2)的工作流程如图4。7、按权利要求3所述的算法总模块,其特征在于再次筛选子模块(2.3)的工作流程如图5。8、按权利要求3所述的算法总模块,其特征在于调整筛选子模块(2.4)的工作流程如图6。全文摘要本发明公开了一种对海量热点页面(URL)筛选排序的算法,属于计算机数据处理领域。本算法总模块,包括排名模块(3),设置有统计采样模块(1)和筛选模块(2);该算法按照统计采样模块(1)、筛选模块(2)、排名模块(3)依次进行;所述的统计采样模块(1)包括统计子模块(1.1)和采样子模块(1.2);所述的筛选模块(2)包括依次进行的预估子模块(2.1)、首次筛选子模块(2.2)、再次筛选子模块(2.3)和调整筛选子模块(2.4)。运用此算法可以高效实现从现网的站点页面中按排名要求筛选出相应的热点站点页面,并在此基础上对选中的站点页面进行排序。文档编号G06F17/30GK101414308SQ20081019781公开日2009年4月22日申请日期2008年11月24日优先权日2008年11月24日发明者猛叶,敖伟成,磊李申请人:武汉虹旭信息技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1