由于Wikipedia的规模,该主题使我感兴趣。在小型站点中创建一些站点来定期更新站点地图可能很容易,但是大型站点呢?所以:
维基百科如何生成其站点地图?
由于Wikipedia的规模,该主题使我感兴趣。在小型站点中创建一些站点来定期更新站点地图可能很容易,但是大型站点呢?所以:
维基百科如何生成其站点地图?
Answers:
它是由PHP脚本动态生成的。对于大型网站,最好检查一下更改并仅在发生更改时才生成-或仅每XY分钟/小时/天生成一次。这取决于基础架构。
所需的信息全部在数据库中,因此这不是一项艰巨的任务。
这是证明:http : //svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php ? view= log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap。的PHP
编辑:啊,这个话题可能也很有趣:
不久前,我面临着为我们的网站创建站点地图的任务。尽管它不像Wikipedia那样大,但仍然大约有十万个页面,并且每天大约有5%的页面被更改,添加或删除。
由于将所有页面引用放在单个文件中会使它变得太大,因此我不得不将它们分成多个部分。站点地图索引指向带查询字符串的aspx页面,该字符串用于17个不同部分之一。根据查询字符串,页面将返回一个xml,该xml基于数据库中存在的对象引用了数千个页面。
因此,站点地图不是定期创建的,而是在有人请求时动态创建的。由于我们已经有一个用于缓存数据库搜索的系统,因此,这当然也用于获取站点地图的数据。
尽管站点地图生成代码在MediaWiki核心母版中,并且可以肯定是生成站点地图的选择,但我没有看到任何证据表明Wikipedia实际上已将其打开。robots.txt文件未指向任何站点地图。
此外,在Wikimedia项目上运行的所有维护脚本均由puppet控制,并且puppet存储库中没有generateSitemap.php实例。最后,对于任何Wikimedia Wiki,转储中都没有站点地图,而有“ Yahoo的摘要 ”。
无论如何,Wikipedia都会在其应用程序服务器之前运行Squid缓存。他们可以通过调整页面的过期时间来控制站点地图的更新频率。
而且,无论Wikipedia为索引做什么,都不是您的Wiki的良好模型,因为Google具有Wikipedia的特殊联系人/交易/处理,请参见最近的示例。
我不是很肯定,但是我认为他们使用MediaWiki 的Google Sitemap扩展名。Sitemaps的Wikipedia页面支持此功能。