将数据导入MediaWiki进行到底
--James Qi 2010年6月12日 (六) 12:27 (CST)
2006年接触MediaWiki后就曾经用XML格式批量导入过数据,确实是非常方便,不过当数据量大了的时候,会遇到很多问题,例如:导入速度慢、数据库过大、原始数据不规范、数据出错、访问太慢、格式不好改等。
在实用查询中曾经导入数万条,在查号吧中曾经导入数十万条,效果都还不错。上面说遇到的一些问题,也通过设置分割文件同时导入、扩充硬件设备、编程预处理数据、文本统一替换、多级缓存、设置模板等办法来逐一解决。
去年我们的人工搜索等网站发展不错,是将每一个页面都认真做好质量、热门信息快速满足浏览者需求,求精不求多,但今年以来被ZF相关部门的清理互联网行动多次整治,流量下降得非常厉害,难以持续发展。在当前的互联网环境下真是无语,只有设法多发展其它项目了。
转型中想到在设法批量产生更多数据上下功夫,今年初在邮编库中导入了100多万条数据,算是比以前的数万、数十万有一个数量级上的提示,因为需要等待搜索引擎收录和展示以及浏览用户发现变化,所以效果不会立竿见影,但也会逐步显现出来。通过几个月的观察,上百万条数据导入是MediaWiki系统可以承受的。
于是新设立名录集的设想也付诸实施,先是导入数万、数十万条的数据,后来导入上百万条,以致按照省份分为数十个数据库加起来上千万条的数据,这些数据量实在太大了,按照1秒/条的导入速度估算需要200天时间不断导入,这时间太长了,就分为多个库同时导入,最多的时候在三台服务器上同时导入近20个xml文件,争取在7月份世界杯结束前全部导入完成。目前已经导入了一部分,从几十个外部数据库生成好几百万条数据,导入几十个MediaWiki网站,有几千个MySQL表,记录数应该上亿或者上十亿,占用磁盘空间10G以上,如果全部生成file cache的静态HTML文件会超过100G。
还有一些姓名等其它数据也在考虑导入MediaWiki系统,当数据量足够大的时候长尾效应也会逐步显现出来,这些超大量的数据不仅对网友有用,也构建起竞争门槛,其它网站就是复制都难以进行。
先批量导入已有数据,再逐步开放网友留言和编辑,形成真正有用的大量信息,这也许是国内发展Wiki网站的一个好办法。
标签:MediaWiki。 |
相关内容:
|
关于“将数据导入MediaWiki进行到底”的留言:
新增留言
--222.244.97.148 (IP 位置 | 谁是 | 贡献) 2017年5月17日 (三) 21:04 (CST)
留言: 如何批量导入数据?可以指导下吗?谢谢
- 回复:您好!在maintenance目录下用php importDump.php导入xml格式的文件,具体您可以看importDump.php这个文件中写的用法、参考mediawiki官方网站中的说明以及google搜索相关关键词。--James Qi(讨论) 2017年5月20日 (六) 21:14 (CST)
mediawiki特定后缀名文件的恢复
--222.131.154.226 (IP 位置 | 谁是 | 贡献) 2018年5月1日 (二) 22:37 (CST)
留言: 您好!我用mediawiki导入dump的xml文件后,网页可以访问,image也可以访问。只是像doc, pdf等后缀名的文件,会显示upload disabled,无法正常显示。我注意到dump出来的wiki,含有两个文本文件,一个是XXX-image.txt一个是XXX-title.txt。里面记录了doc,pdf, png等文件的在原来的wiki上的映射地址。请问如何将这些地址恢复到重建的mediawiki里?谢谢!
- 回复:您好!如果有upload disabled的提示,你可以检查LocalSettings.php里面与文件上传相关的设置,允许上传功能试一试看。你说的XXX-image.txt一个是XXX-title.txt我以前还没有接触过,抱歉不知道如何重建。如果是dump的Wikipedia的内容,可以在下载的页面看看是否有帮助说明,或者在Google里面搜索看看,我如果自己遇到也是用这样的办法去寻找解决方案。--James Qi(讨论) 2018年5月3日 (四) 00:13 (CST)
- 补充:可以尝试在LocalSettings.php里面设置:$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ogg', 'ppt', 'pdf', 'doc', 'rar', 'mp3','xls', 'zip','swf');允许更多的后缀名文件上传,参看:Manual:$wgFileExtensions - MediaWiki。--James Qi(讨论) 2018年7月29日 (日) 20:00 (CST)