由于维基百科的大小,这个话题引起了我的兴趣。 在一个小网站上定期更新站点地图可能很容易,但是一个大站点呢? 所以:
维基百科如何生成其网站地图?
它是由PHP脚本dynamic生成的。 对于大型网站来说,检查更改可能会更好,只有在更改某些内容时才会生成,或者每隔XY分钟/小时/天生成一次。 这取决于基础设施。
所需的信息都在数据库中,所以这不是一个艰巨的任务。
这里是certificate: http : //svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php ? view= log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap。 PHP
编辑:啊,这个话题也可能是有趣的:
我面临着为我们的网站创build一个站点地图的任务。 虽然它不是维基百科的大小,但它仍然大约有十万页,其中大约5%是每天更改,添加或删除的。
由于将所有的页面引用放在一个文件中会导致它太大,我不得不把它们分成几个部分。 站点地图索引指向包含17个不同部分之一的查询string的aspx页面。 根据查询string的不同,页面会根据数据库中存在的对象返回一个引用数千页的xml。
所以,站点地图不是定期创build的,而是在有人请求时dynamic创build的。 由于我们已经有一个用于caching数据库search的系统,所以这当然也用来获取站点地图的数据。
虽然站点地图生成代码是在MediaWiki核心大师 ,并且肯定会select产生一个站点地图,我没有看到任何证据,维基百科实际上已经打开。 robots.txt文件不指向任何网站地图。
此外,在维基媒体项目上运行的任何维护脚本都由puppet控制, puppet存储库中没有generateSitemap.php实例 。 最后, 任何维基媒体wiki都没有站点地图,而“ 雅虎摘要 ”则是。
无论如何,维基百科在他们的应用服务器之前运行Squidcaching。 他们可以通过调整页面的到期时间来控制更新站点地图的频率。
而且,无论维基百科对索引做什么都不适合你的wiki,因为Google有特殊的联系/交易/处理维基百科,请看最近的一个例子 。
我不积极,但我认为他们使用MediaWiki的Google Sitemap扩展。 这由站点地图上的维基百科页面支持。