发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种死链规则挖掘方法、装置、搜索方法和装置。
依据本发明的一个方面,提供了一种死链规则挖掘方法,该方法包括:
基于已抓取链接列表,选择指定站点中链接,获取该指定站点中链接所包含的各级目录链接;
对于各目录链接,分别统计各自对应的死链属性,以及分别统计各自对应的死链属性的扩展性;
基于上述各个目录链接分别对应的死链属性以及死链属性的扩展性,确定所述指定站点的死链规则。
可选地,对于各目录链接,分别统计各自对应的死链属性包括:
对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性为:死链状态、活链状态或部分死链部分活链状态。
可选地,所述对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性为:死链状态、活链状态或部分死链部分活链状态包括:
如果该目录链接下包含的总链数大于第一预设值,且其中的死链占比大于等于第二预设值,则该目录链接的死链属性为死链状态;
如果该目录链接下包含的总链数大于第三预设值,且其中的活链占比大于等于第四预设值,则该目录链接的死链属性为活链状态;
如果目录链接下包含的总链数大于第五预设值,且其中的活链占比大于等于第六预设值,则该目录链接的死链属性为部分死链部分活链状态;
其中,第一预设值>第三预设值>第五预设值;
第二预设值>第四预设值>第六预设值。
可选地,所述第一预设值为:15;
所述第二预设值为:92%;
所述第三预设值为:10;
所述第四预设值为:70%;
所述第五预设值为:5;
所述第六预设值为:30%。
可选地,所述分别统计各自对应的死链属性的扩展性包括:
对于一个目录链接,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致,如果都一致则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展。
可选地,该方法进一步包括:
对于没有孩子目录链接的目录链接,默认该目录链接的死链属性不可扩展。
可选地,对于一个目录链接,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致,如果都一致则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展包括:
将该指定站点的各目录链接按照从低到高的级别进行排序;
按照所述排序对其中的每个目录链接执行如下操作:
记录该目录链接的状态;
如果该目录链接有父目录链接,则将其父目录链接放入指定集合中;
判断该目录链接是否在所述指定集合中,如果不在,默认该目录链接的死链属性不可扩展;如果在,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致;
如果都一致,则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展,并在该目录链接的死链属性为死链状态时将其临时修改为部分死链部分活链状态;
按照所述排序对每个目录链接都执行如上操作后,将死链属性为部分死链部分活链状态的目录链接修改为死链状态。
可选地,该方法进一步包括:
对个一个目录链接,判断该目录链接的死链属性是否与其父目录链接的死链属性一致,且其父目录链接的死链属性可扩展,如果是则筛掉该目录链接。
可选地,所述判断该目录链接的死链属性是否与其父目录链接的死链属性一致,且其父目录链接的死链属性可扩展,如果是则筛掉该目录链接包括:
将该指定站点的目录链接按照从高到低的级别进行排序;
先设置如下三个变量为空:上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性;
然后按照所述排序对每个目录链接执行如下操作:
判断上一目录链接是否为当前目录链接的父目录链接,否则保留当前目录链接;其中,如果变量上一目录链接为空,直接保留当前目录链接;
如果是父目录链接,判断当前目录链接的死链属性是否与上一目录链接的死链属性一致,且其上一目录链接的死链属性可扩展,如果是则筛掉该目录链接,否则保留当前目录链接;
将被保留的当前目录链接、被保留的当前目录链接的死链属性和被保留的当前目录链接死链属性的扩展性依次分别赋值给所述的三个变量。
依据本发明的另一个方面,提供了一种搜索方法,该方法包括:
根据搜索请求获取搜索结果;
根据死链规则,从所述搜索结果中去除死链;其中所述死链规则是依据如上任一项所述的方法获取的。
向用户展现去除死链后的搜索结果。
可选地,所述根据死链规则,从所述搜索结果中去除死链包括:
如果搜索结果中的一个链接包含一个死链属性为死链状态,且死链属性可扩展的目录链接,则确定该链接为死链,将该死链从搜索结果中去除。
依据本发明的又一个方面,提供了一种死链规则挖掘装置,该装置包括:
目录链接获取单元,适于基于已抓取链接列表,选择指定站点中链接,获取该指定站点中链接所包含的各级目录链接;
死链统计单元,适于对于各目录链接,分别统计各自对应的死链属性,以及分别统计各自对应的死链属性的扩展性;
死链规则单元,适于基于上述各个目录链接分别对应的死链属性以及死链属性的扩展性,确定所述指定站点的死链规则。
可选地,所述死链统计单元,适于对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性为:死链状态、活链状态或部分死链部分活链状态。
可选地,所述死链统计单元,适于根据如下规则确定一个目录链接的死链属性:
如果该目录链接下包含的总链数大于第一预设值,且其中的死链占比大于等于第二预设值,则该目录链接的死链属性为死链状态;
如果该目录链接下包含的总链数大于第三预设值,且其中的活链占比大于等于第四预设值,则该目录链接的死链属性为活链状态;
如果目录链接下包含的总链数大于第五预设值,且其中的活链占比大于等于第六预设值,则该目录链接的死链属性为部分死链部分活链状态;
其中,第一预设值>第三预设值>第五预设值;
第二预设值>第四预设值>第六预设值。
可选地,所述第一预设值为:15;
所述第二预设值为:92%;
所述第三预设值为:10;
所述第四预设值为:70%;
所述第五预设值为:5;
所述第六预设值为:30%。
可选地,所述死链统计单元,适于对于一个目录链接,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致,如果都一致则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展。
可选地,所述死链统计单元,适于对于没有孩子目录链接的目录链接,默认该目录链接的死链属性不可扩展。
可选地,所述死链统计单元,适于根据如下步骤确定一个目录链接的死链属性的扩展性:
将该指定站点的各目录链接按照从低到高的级别进行排序;
按照所述排序对其中的每个目录链接执行如下操作:
记录该目录链接的状态;
如果该目录链接有父目录链接,则将其父目录链接放入指定集合中;
判断该目录链接是否在所述指定集合中,如果不在,默认该目录链接的死链属性不可扩展;如果在,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致;
如果都一致,则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展,并在该目录链接的死链属性为死链状态时将其临时修改为部分死链部分活链状态;
按照所述排序对每个目录链接都执行如上操作后,将死链属性为部分死链部分活链状态的目录链接修改为死链状态。
可选地,该装置进一步包括:
去冗余单元,适于对个所述各目录链接中的每个目录链接,判断该目录链接的死链属性是否与其父目录链接的死链属性一致,且其父目录链接的死链属性可扩展,如果是则筛掉该目录链接。
可选地,去冗余单元,适于根据如下步骤筛掉部分目录链接:
将该指定站点的目录链接按照从高到低的级别进行排序;
先设置如下三个变量为空:上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性;
然后按照所述排序对每个目录链接执行如下操作:
判断上一目录链接是否为当前目录链接的父目录链接,否则保留当前目录链接;其中,如果变量上一目录链接为空,直接保留当前目录链接;
如果是父目录链接,判断当前目录链接的死链属性是否与上一目录链接的死链属性一致,且其上一目录链接的死链属性可扩展,如果是则筛掉该目录链接,否则保留当前目录链接;
将被保留的当前目录链接、当前目录链接的死链属性和当前目录链接死链属性的扩展性依次分别赋值给所述的三个变量。
依据本发明的再一个方面,提供了一种搜索装置,该装置包括:
搜索结果获取单元,适于根据搜索请求获取搜索结果;
死链去除单元,适于根据死链规则,从所述搜索结果中去除死链;其中所述死链规则是如上任一项所述的死链规则挖掘装置获得的。
搜索结果展示单元,适于向用户展现去除死链后的搜索结果。
可选地,所述死链去除单元,适于在搜索结果中的一个链接包含一个死链属性为死链状态,且死链属性可扩展的目录链接,则确定该链接为死链,将该死链从搜索结果中去除。
由上述可知,本发明提供的技术方案以指定站点中的目录链接为样本,通过统计各目录链接的死链属性及死链属性的扩展性,确定指定站点的死链规则。在用户进行搜索操作时,将死链规则能够确定的死链从搜索结果中去除,将无死链的搜索结果展现给用户。与现有技术相比,本方案不再局限于对链接的死链属性的遍历式检测,而是进一步通过分析其死链属性和死链属性的扩展性,挖掘死链规则,克服了现有技术的盲目和繁琐,更加启发式、有效、便捷地对指定站点中的链接属性进行判断;并给用户提供更为有效、可靠的搜索体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种死链规则挖掘方法的流程图。如图1所示,该方法包括:
步骤S110,基于已抓取链接列表,选择指定站点中链接,获取该指定站点中链接所包含的各级目录链接。
例如,一个链接http://A/B/C所包含的各级目录链接为http://A、http://A/B和http://A/B/C。本本文中,为了描述方便,将如上述的目录链接记录为A、A/B、A/B/C。
步骤S120,对于各目录链接,分别统计各自对应的死链属性,以及分别统计各自对应的死链属性的扩展性。
步骤S130,基于上述各个目录链接分别对应的死链属性以及死链属性的扩展性,确定指定站点的死链规则。
可见,图1所示的方法以指定站点中的目录链接为样本,通过统计各目录链接的死链属性及死链属性的扩展性,确定指定站点的死链规则。与现有技术相比,本方案不再局限于对链接的死链属性的遍历式检测,而是进一步通过分析其死链属性和死链属性的扩展性,挖掘死链规则,克服了现有技术的盲目和繁琐,更加启发式、有效、便捷地对指定站点中的链接属性进行判断。
在本发明的一个实施例中,图1所示方法的步骤S120中对于各目录链接,分别统计各自对应的死链属性是指:对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性。死链属性包括:死链状态、活链状态或部分死链部分活链状态。
在本发明的一个实施例中,所述对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性为:死链状态、活链状态或部分死链部分活链状态包括:
如果该目录链接下包含的总链数大于第一预设值,且其中的死链占比大于等于第二预设值,则该目录链接的死链属性为死链状态;如果该目录链接下包含的总链数大于第三预设值,且其中的活链占比大于等于第四预设值,则该目录链接的死链属性为活链状态;如果目录链接下包含的总链数大于第五预设值,且其中的活链占比大于等于第六预设值,则该目录链接的死链属性为部分死链部分活链状态。其中,第一预设值>第三预设值>第五预设值;第二预设值>第四预设值>第六预设值。
在本发明的一个具体实施例中:所述第一预设值为:15;所述第二预设值为:92%;所述第三预设值为:10;所述第四预设值为:70%;所述第五预设值为:5;所述第六预设值为:30%。则判断死链属性的方法为:如果一个目录链接下包含的总链数大于15,且其中的死链占比大于等于92%,则该目录链接的死链属性为死链状态;如果一个目录链接下包含的总链数大于10,且其中的活链占比大于等于70%,则该目录链接的死链属性为活链状态;如果目录链接下包含的总链数大于5值,且其中的活链占比大于等于30%,则该目录链接的死链属性为部分死链部分活链状态。
例如,依据上述死链属性的判断标准,指定站点Site0中链接所包含的各级目录链接为:A/C/D/E、A/C/D/D、A/C/D、A/C/C/E、A/C/C/D、A/C/C、A/C、A/B、A,依据上述死链属性的判断方法,判断得到各目录链接的死链属性如表1所示,其中,“0”表示活链状态,“1”表示死链状态,“2”表示部分死链部分活链状态。
表1
在本发明的一个实施例中,图1所示的方法的步骤S120中对于一个目录链接,分别统计各自对应的死链属性的扩展性是指:对于一个目录链接,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致,如果都一致则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展。其中,对于没有孩子目录链接的目录链接,默认该目录链接的死链属性不可扩展。
在本发明的一个具体实施例中,判断死链属性的扩展性的具体方法为:将指定站点的各目录链接按照从低到高的级别进行排序,按照排序对其中的每个目录链接执行如下操作:
步骤S121,记录该目录链接的死链属性。
步骤S122,如果该目录链接有父目录链接,则将其父目录链接放入指定集合中。
步骤S123,判断该目录链接是否在指定集合中,如果不在,默认该目录链接的死链属性不可扩展;如果在,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致。
步骤S124,如果都一致,则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展,并在该目录链接的死链属性为死链状态时将其临时修改为部分死链部分活链状态。
步骤S125,按照所述排序对每个目录链接都执行如上操作后,将死链属性为部分死链部分活链状态的目录链接修改为死链状态。
沿用指定站点Site0的例子,如表1所示将各目录链接按照从低到高的级别进行排序,按照排序依次对各目录链接执行操作。
初始状态下设置指定集合为空,指定集合的含义是:放入指定集合的目录链接具有孩子目录链接。以F代表死链属性,P代表父目录链接,C代表孩子目录链接。
对于目录链接A/C/D/E,如表1所示,记录其死链属性F(A/C/D/E)=1,其父目录链接P(A/C/D/E)=A/C/D,将其父目录链接A/C/D放入指定集合中,当前目录链接A/C/D/E不在指定集合中,默认该目录链接的死链属性不可扩展。
对于目录链接A/C/D/D,如表1所示,记录其死链属性F(A/C/D/D)=1,其父目录链接P(A/C/D/D)=A/C/D在处理目录链接A/C/D/E时已被放入指定集合中,当前目录链接A/C/D/D不在指定集合中,默认该目录链接的死链属性不可扩展。
对于目录链接A/C/D,如表1所示,记录其死链属性F(A/C/D)=1,其父目录链接P(A/C/D)=A/C,将其父目录链接A/C放入指定集合中,当前目录链接A/C/D在指定集合中,其孩子目录链接的死链属性F{C(A/C/D)}=F{A/C/D/E,A/C/D/D}={F(A/C/D/E),F(A/C/D/D)}={1,1},都与当前目录链接A/C/D的死链属性一致,该目录链接的死链属性可扩展。
对于目录链接A/C/C/E,如表1所示,记录其死链属性F(A/C/C/E)=0,其父目录链接P(A/C/C/E)=A/C/C,将其父目录链接A/C/C放入指定集合中,当前目录链接A/C/C/E不在指定集合中,默认该目录链接的死链属性不可扩展。
对于目录链接A/C/C/D,如表1所示,记录其死链属性F(A/C/C/D)=0,其父目录链接P(A/C/C/D)=A/C/C在处理目录链接A/C/C/E时已被放入指定集合中,当前目录链接A/C/C/D不在指定集合中,默认该目录链接的死链属性不可扩展。
对于目录链接A/C/C,如表1所示,记录其死链属性F(A/C/C)=0,其父目录链接P(A/C/C)=A/C在处理目录链接A/C/D时已被放入指定集合中,当前目录链接A/C/C在指定集合中,其孩子目录链接的死链属性F{C(A/C/C)}=F{A/C/C/E,A/C/C/D}={F(A/C/C/E),F(A/C/C/D)}={0,0},都与当前目录链接A/C/C的死链属性一致,该目录链接的死链属性可扩展。
对于目录链接A/C,如表1所示,记录其死链属性F(A/C)=1,其父目录链接P(A/C)=A,将其父目录链接A放入指定集合中,当前目录链接A/C在指定集合中,其孩子目录链接的死链属性F{C(A/C)}=F{A/C/C,A/C/D}={F(A/C/C),F(A/C/D)}={0,1},不都与当前目录链接A/C的死链属性一致,该目录链接的死链属性不可扩展,将该目录链接的死链属性临时修改为部分死链部分活链状态,F(A/C)=2。
对于目录链接A/B,如表1所示,记录其死链属性F(A/B)=1,其父目录链接P(A/B)=A在处理目录链接A/C时已被放入指定集合中,当前目录链接A/B不在指定集合中,默认该目录链接的死链属性不可扩展。
对于目录链接A,如表1所示,记录其死链属性F(A)=1当前目录链接A在指定集合中,其孩子目录链接的死链属性F{C(A)}=F{A/B,A/C}={F(A/B),F(A/C)}={1,2},不都与当前目录链接A的死链属性一致,该目录链接的死链属性不可扩展。
处理完毕,将死链属性为部分死链部分活链状态的目录链接A/C修改为死链状态,得到各目录链接的死链属性的扩展性,如表2所示,其中,在死链属性所在的列中,“0”表示活链状态,“1”表示死链状态,“2”表示部分死链部分活链状态;在死链属性的扩展性所在的列中,“0”表示死链属性不可扩展,“1”表示死链属性可扩展。
表2
在对指定站点的各目录链接的死链属性和死链属性的扩展性做出判断后,在本发明的一个实施例中,图1所示的方法进一步包括:对个一个目录链接,判断该目录链接的死链属性是否与其父目录链接的死链属性一致,且其父目录链接的死链属性可扩展,如果是则筛掉该目录链接。
在本实施例中,对目录链接进行筛掉处理的方法具体为:将该指定站点的目录链接按照从高到低的级别进行排序;先设置如下三个变量为空:上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性;然后按照所述排序对每个目录链接执行如下操作:
步骤S126,判断上一目录链接是否为当前目录链接的父目录链接;如果否,则保留当前目录链接;其中,如果变量上一目录链接为空,直接保留当前目录链接。
步骤S127,如果是父目录链接,判断当前目录链接的死链属性是否与上一目录链接的死链属性一致,且其上一目录链接的死链属性可扩展,如果是则筛掉该目录链接,否则保留当前目录链接。
步骤S128,将被保留的当前目录链接、当前目录链接的死链属性和当前目录链接死链属性的扩展性依次分别赋值给所述的三个变量。
继续沿用指定站点Site0的例子,如表3所示将各目录链接按照从高到低的级别进行排序。
表3
设置上一目录链接(old_urldir)、上一目录链接的死链属性(old_stat)和上一目录链接死链属性的扩展性(old_extended)这三个变量为空,按照排序依次对各目录链接执行操作,其中,以E表示死链属性的扩展性。
对于目录链接A,上一目录链接为空,直接保留当前目录链接A;并将当前目录链接A、当前目录链接的死链属性F(A)=1和当前目录链接死链属性的扩展性E(A)=0依次分别赋值给上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性这三个变量。
对于目录链接A/B,上一目录链接A为当前目录链接A/B的父目录链接,虽然当前目录链接A/B的死链属性F(A/B)=1与上一目录链接的死链属性F(A)=1一致,但上一目录链接死链属性不可扩展E(A)=0,因此保留当前目录链接A/B;并将当前目录链接A/B、当前目录链接的死链属性F(A/B)=1和当前目录链接死链属性的扩展性E(A/B)=0依次分别赋值给上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性这三个变量。
对于目录链接A/C,上一目录链接A/B不是当前目录链接A/C的父目录链接,保留当前目录链接A/C;并将当前目录链接A/C、当前目录链接的死链属性F(A/C)=1和当前目录链接死链属性的扩展性E(A/C)=0依次分别赋值给上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性这三个变量。
对于目录链接A/C/C,上一目录链接A/C为当前目录链接A/C/C的父目录链接,当前目录链接A/C/C的死链属性F(A/C/C)=0与上一目录链接的死链属性F(A/C)=1不一致,因此保留当前目录链接A/C/C;并将当前目录链接A/C/C、当前目录链接的死链属性F(A/C/C)=0和当前目录链接死链属性的扩展性E(A/C/C)=1依次分别赋值给上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性这三个变量。
对于目录链接A/C/C/D,上一目录链接A/C/C为当前目录链接A/C/C/D的父目录链接,当前目录链接A/C/C/D的死链属性F(A/C/C/D)=0与上一目录链接的死链属性F(A/C/C)=0一致,且上一目录链接死链属性可扩展E(A/C/C)=1,因此筛掉该目录链接A/C/C/D。
对于目录链接A/C/C/E,上一目录链接A/C/C为当前目录链接A/C/C/E的父目录链接,当前目录链接A/C/C/E的死链属性F(A/C/C/E)=0与上一目录链接的死链属性F(A/C/C)=0一致,且上一目录链接死链属性可扩展E(A/C/C)=1,因此筛掉该目录链接A/C/C/E。
对于目录链接A/C/D,上一目录链接A/C/C不是当前目录链接A/C/D的父目录链接,保留当前目录链接A/C/D;并将当前目录链接A/C/D、当前目录链接的死链属性F(A/C/D)=1和当前目录链接死链属性的扩展性E(A/C/D)=1依次分别赋值给上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性这三个变量。
对于目录链接A/C/D/D,上一目录链接A/C/D为当前目录链接A/C/D/D的父目录链接,当前目录链接A/C/D/D的死链属性F(A/C/D/D)=1与上一目录链接的死链属性F(A/C/D)=1一致,且上一目录链接死链属性可扩展E(A/C/D)=1,因此筛掉该目录链接A/C/D/D。
对于目录链接A/C/D/E,上一目录链接A/C/D为当前目录链接A/C/D/E的父目录链接,当前目录链接A/C/D/E的死链属性F(A/C/D/E)=1与上一目录链接的死链属性F(A/C/D)=1一致,且上一目录链接死链属性可扩展E(A/C/D)=1,因此筛掉该目录链接A/C/D/E。
处理完毕,输出的最终结果如表4所示:
表4
图1所示的方法得到的死链规则如表5所示:
表5
通过表5可知,在指定站点Site0中,目录链接A、A/B和A/C为死链,但其死链属性不可扩展,即这些目录链接本身是死链,但包含这些目录链接但又长于这些目录链接的链接未必是死链,有可能是活链。如A/G、A/B/H、A/C/J/I的有可能是活链,也可能死链。目录链接A/C/D是死链,且其死链属性可扩展,即包含A/C/D的任何链接都是死链。
图2示出了根据本发明一个实施例的一种搜索方法的流程图。如图2所示,该搜索方法包括:
步骤S210,根据搜索请求获取搜索结果。
步骤S220,根据死链规则,从搜索结果中去除死链。
在本步骤中,所述死链规则是依据如图1所示方法获取的。
步骤S230,向用户展现去除死链后的搜索结果。
可见,图2所示的搜索方法通过将死链规则可以判断为死链的链接从搜索结果中去除,向用户展现无死链的搜索结果,给用户更为可靠、有效的搜索体验。
在本发明的一个实施例中,图2所示方法的步骤S220根据死链规则,从搜索结果中去除死链包括:如果搜索结果中的一个链接包含一个死链属性为死链状态,且死链属性可扩展的目录链接,则确定该链接为死链,将该死链从搜索结果中去除。
通过图2所示的方法,能够从搜索结果中去除死链,提高了用户体验。
图3示出了根据本发明一个实施例的一种死链规则挖掘装置的示意图。如图3所示,该死链规则挖掘装置300包括:
目录链接获取单元310,适于基于已抓取链接列表,选择指定站点中链接,获取该指定站点中链接所包含的各级目录链接。
死链统计单元320,适于对于各目录链接,分别统计各自对应的死链属性,以及分别统计各自对应的死链属性的扩展性。
死链规则单元330,适于基于上述各个目录链接分别对应的死链属性以及死链属性的扩展性,确定所述指定站点的死链规则。
可见,图3所示的装置通过各单元的配合,以指定站点中的目录链接为样本,通过统计各目录链接的死链属性及死链属性的扩展性,确定指定站点的死链规则。与现有技术相比,本方案不再局限于对链接的死链属性的遍历式检测,而是进一步通过分析其死链属性和死链属性的扩展性,挖掘死链规则,克服了现有技术的盲目和繁琐,更加启发式、有效、便捷地对指定站点中的链接属性进行判断。
在本发明的一个实施例中,图3所示装置的死链统计单元320,适于对于一个目录链接,根据该目录链接下的总链量和死链接量确定该目录链接的死链属性为:死链状态、活链状态或部分死链部分活链状态。
在本发明的一个实施例中,所述死链统计单元320,适于根据如下规则确定一个目录链接的死链属性:
如果该目录链接下包含的总链数大于第一预设值,且其中的死链占比大于等于第二预设值,则该目录链接的死链属性为死链状态;如果该目录链接下包含的总链数大于第三预设值,且其中的活链占比大于等于第四预设值,则该目录链接的死链属性为活链状态;如果目录链接下包含的总链数大于第五预设值,且其中的活链占比大于等于第六预设值,则该目录链接的死链属性为部分死链部分活链状态;其中,第一预设值>第三预设值>第五预设值;第二预设值>第四预设值>第六预设值。
在本发明的一个实施例中,所述第一预设值为:15;所述第二预设值为:92%;所述第三预设值为:10;所述第四预设值为:70%;所述第五预设值为:5;所述第六预设值为:30%。则所述死链统计单元320确定死链属性的规则为:如果一个目录链接下包含的总链数大于15,且其中的死链占比大于等于92%,则该目录链接的死链属性为死链状态;如果一个目录链接下包含的总链数大于10,且其中的活链占比大于等于70%,则该目录链接的死链属性为活链状态;如果目录链接下包含的总链数大于5值,且其中的活链占比大于等于30%,则该目录链接的死链属性为部分死链部分活链状态。
在本发明的一个实施例中,图3所示装置的死链统计单元320,适于对于一个目录链接,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致,如果都一致则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展。其中,对于没有孩子目录链接的目录链接,死链统计单元320默认该目录链接的死链属性不可扩展。
在本实施例中,死链统计单元320适于根据如下步骤确定一个目录链接的死链属性的扩展性:将该指定站点的各目录链接按照从低到高的级别进行排序;按照所述排序对其中的每个目录链接执行如下操作:
记录该目录链接的状态;如果该目录链接有父目录链接,则将其父目录链接放入指定集合中;判断该目录链接是否在所述指定集合中,如果不在,默认该目录链接的死链属性不可扩展;如果在,判断该目录链接的所有孩子目录链接的死链属性是否都与该目录链接的死链属性一致;如果都一致,则该目录链接的死链属性可扩展,否则该目录链接的死链属性不可扩展,并在该目录链接的死链属性为死链状态时将其临时修改为部分死链部分活链状态;按照所述排序对每个目录链接都执行如上操作后,将死链属性为部分死链部分活链状态的目录链接修改为死链状态。
死链统计单元320所执行的上述过程与图1所示方法判断死链属性的扩展性的过程相同,上文中已利用指定站点Site0的例子详细说明,在此不再赘述。
图4示出了根据本发明另一个实施例的一种死链规则挖掘装置的示意图。如图4所示,该死链规则挖掘装置400包括:目录链接获取单元410、死链统计单元420、死链规则单元430和去冗余单元440。
其中,目录链接获取单元410、死链统计单元420、死链规则单元430分别与图3所示装置的目录链接获取单元310、死链统计单元320、死链规则单元330对应相同,在此不再赘述。
去冗余单元440,适于对个所述各目录链接中的每个目录链接,判断该目录链接的死链属性是否与其父目录链接的死链属性一致,且其父目录链接的死链属性可扩展,如果是则筛掉该目录链接。
在本发明的一个实施例中,图4所示装置的去冗余单元440,适于根据如下步骤筛掉部分目录链接:将该指定站点的目录链接按照从高到低的级别进行排序;先设置如下三个变量为空:上一目录链接、上一目录链接的死链属性和上一目录链接死链属性的扩展性;然后按照所述排序对每个目录链接执行如下操作:
判断上一目录链接是否为当前目录链接的父目录链接,否则保留当前目录链接;其中,如果变量上一目录链接为空,直接保留当前目录链接;如果是父目录链接,判断当前目录链接的死链属性是否与上一目录链接的死链属性一致,且其上一目录链接的死链属性可扩展,如果是则筛掉该目录链接,否则保留当前目录链接;将被保留的当前目录链接、当前目录链接的死链属性和当前目录链接死链属性的扩展性依次分别赋值给所述的三个变量。
去冗余单元440所执行的上述过程与图1所示方法对目录链接进行筛掉处理的过程相同,上文中已利用指定站点Site0的例子详细说明,在此不再赘述。
图5示出了根据本发明一个实施例的一种搜索装置的示意图。如图5所示,该搜索装置500包括:
搜索结果获取单元510,适于根据搜索请求获取搜索结果。
死链去除单元520,适于根据死链规则,从所述搜索结果中去除死链。
所述死链去除单元520所依据的死链规则是如上任一实施例所述的死链规则挖掘装置获得的。
搜索结果展示单元530,适于向用户展现去除死链后的搜索结果。
可见,图5所示的搜索装置通过各单元的相互配合,将死链规则可以判断为死链的链接从搜索结果中去除,向用户展现无死链的搜索结果,给用户更为可靠、有效的搜索体验。
在本发明的一个实施例中,死链去除单元520,适于在搜索结果中的一个链接包含一个死链属性为死链状态,且死链属性可扩展的目录链接,则确定该链接为死链,将该死链从搜索结果中去除。
综上所述,图1所示的方法以指定站点中的目录链接为样本,通过统计各目录链接的死链属性及死链属性的扩展性,去除冗余目录链接的相关信息,确定指定站点的死链规则。在用户进行搜索操作时,将死链规则能够确定的死链从搜索结果中去除,将无死链的搜索结果展现给用户。与现有技术相比,本方案不再局限于对链接的死链属性的遍历式检测,而是进一步通过分析其死链属性和死链属性的扩展性,挖掘死链规则,克服了现有技术的盲目和繁琐,更加启发式、有效、便捷地对指定站点中的链接属性进行判断;并给用户提供更为有效、可靠的搜索体验。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种死链规则挖掘装置和搜索装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。