我想找到一个大网站最远的两个页面(+500 万页)。
(就是分离的程度,两个页面之间的链接最多)
我想找到一个大网站最远的两个页面(+500 万页)。
(就是分离的程度,两个页面之间的链接最多)
这是一个经典的“图数据库”问题。我会执行以下步骤:-
这将使您能够查询具有最大步骤数的页面,或最常链接到的页面等。
假设您有一个表中的数据,其中每个链接包含一行,存储 PAGE 和链接页面 (LINK_TO)。
select * from page_link;
PAGE LINK_TO
---- -------
A A
A B
A B
A C
B C
B C
B C
C A
比两列上的简单分组并计算出现次数。这给出了任何两个链接页面之间的链接数量,因此您可以看到两个页面之间的链接最多- 如果这确实是您想要的...
select PAGE, LINK_TO, count(*)
from page_link
group by PAGE, LINK_TO order by 3 desc;
PAGE LINK_TO COUNT(*)
---- ------- ----------
B C 3
A B 2
A C 1
A A 1
C A 1
几百万条记录对于您选择的任何数据库都不是问题。