Wikipedia:Technik/Datenbank/Download
Die Wikipedia kann nicht nur online gelesen werden, es besteht auch die Möglichkeit, sich die Wikipedia komplett auf den eigenen Rechner herunter zu laden, um offline darin zu lesen. Voraussetzung ist ein installiertes MediaWiki, die PHP-Software, die Wikipedia nutzt.
Das Ganze ist allerdings ziemlich kompliziert, also eher etwas für fortgeschrittene User. Daher empfiehlt sich zum einfachen offline lesen der deutschen Wikipedia die DVD-Version, welche es auch zum freien Download gibt, oder die offline HTML-Version der Wikipedia ohne Bilder mit dem Stand vom April 2007.
Es ist auch möglich die Wikipedia im TomeRaider 3-Format offline zu nutzen. Bei der Testversion von TomeRaider 3 wird jeder 5. Wikipedia Artikel nicht angezeigt. Die aktuellste Version ohne Bilder ist vom 01. Juli 2007. Die aktuellste Version mit Bildern(alle Bildformate außer SVG) ist vom 23. Mai 2007, sie ist im .rar-Format und in 5 Teile geteilt. Sie kann mit WinRAR (Shareware) oder Z7 (Freeware) entpackt werden. [1] [2] [3] [4] [5]
Hier eine ausführliche Anleitung für Windows-Nutzer ohne jedes Vorwissen für die XML-Version - vom blanken Desktop bis zur fertigen Wikipedia (dafür braucht man Internetanschluss, an dem Computer, an dem man die Offline-Wikipedia installieren möchte).
Download aller Seiten als XML-Dump
Die gewünschten Datensätze herunterladen von
Import in MySQL
Der Import der XML-Daten kann entweder über das langsame PHP-Skript importDump.php der MediaWiki-Software erfolgen, oder über das etwas schneller arbeitende Java-Paket MWDumper [6]. Dieses benötigt eine funktionierende Java-Installation. Der Import erfolgt dann mit folgendem Befehl:
java -jar mwdumper.jar --format=sql:1.5 pages_meta_current.xml.bz2 | mysql -u <username> -p<password> <databasename>
Es ist wichtig, dass die Datenbanktabellen bis auf site_stats, user, user_groups und interwiki vollständig leer sind (TRUNCATE TABLE...), da sonst der Import fehlschlagen kann. Sollte ein Fehler auftreten, wird MWDumper dennoch weiter fröhlich das XML in SQL konvertieren, aber der mySQL-Server importiert nicht mehr. In diesem Fall prüfen, ob wirklich alle Tabellen leer sind und von vorn beginnen.
Damit hat man die Artikelseiten in die Datenbank importiert und kann im Wiki lesen.
Linktabellen bauen
Für viele interessante Datenbankabfragen sind Informationen darüber notwendig, welcher Artikel auf welche anderen Ressourcen verlinkt. Die Selbsterstellung dieser Linktabellen ist allerdings ein zeitaufwändiger Prozess.
php refreshlinks.php
In seiner gegenwärtigen Fassung ist dieses Skript ein riesiges Memory-Leak. Sobald der Rechner wegen Speichermangels auf die Auslagerungsdatei zurückgreifen muss, geht die ohnehin schon niedrige Performance des Skripts immer rascher gegen Null. Die Linktabelle sollte daher abschnittsweise erstellt werden, indem das Skript zwischendrin abgebrochen wird, man sich die letzte Position merkt und folgendermaßen wieder startet:
php refreshlinks.php -- 228600
Auf diese Weise wird der unnötigerweise verbrauchte Speicher wieder freigegeben und die Erstellung der Linktabelle bei Artikel Nr. 228600 fortgesetzt.
Optional: Textindex
Wenn man Volltextsuchen durchführen möchte, muss ein Textindex erzeugt werden. Dies geschieht über
php rebuildtextindex.php
Wikipedia selbst arbeitet übrigens nicht mit dieser relativ langsamen MySQL-basierten Suche, sondern verwendet Apache Lucene.
Optional: Recentchanges aktualisieren
Wenn man wissen möchte, bis zu welcher Uhrzeit der installierte Datenbank-Dump reicht, kann man kurz
php rebuildrecentchanges.php
sagen, um die Seite "Letzte Änderungen" zu aktualisieren.
Optional: Artikelanzahl neu berechnen
Die Anzahl der im Wiki vorhandenen Artikel und einige andere Zahlen können mit initStats.php neu berechnet werden:
php initStats.php
Ein Wort zur Hardware
Die Wikipedia-Datenbank stellt mittlerweile recht hohe Ansprüche an leistungsfähige Hardware. Zur besseren Einschätzung daher einige Erfahrungen aus der Praxis: Wenn man nur lesen möchte, genügt ein Rechner der 1-GHz-Klasse mit wenig RAM. Für anspruchsvollere Aufgaben wie Wartungsseiten, SQL-Abfragen, selbst gebaute Linktabellen oder den Import der old-Tabelle sollte man aber eine bessere Hardware zur Verfügung stellen: 1 GB RAM oder mehr und ein möglichst schneller Prozessor mit mehr als 3 GHz oder Multicore-Prozessoren sind sehr sinnvoll, ebenso wie schnelle Festplatten (am besten als RAID). Die Tabellen sollten im MySQL-Server möglichst als InnoDB abgelegt sein, damit die Performance besser wird (allerdings auf Kosten des Speicherverbrauchs). Anmerkung von Benutzer:Echoray: Diese Faustregel basiert noch auf Erfahrung mit der alten MediaWiki-Software 1.3 und MySQL 4.0. Mit MyISAM performten die Linktabellen einfach nicht. Ich habe den Verdacht, dass der Rückgriff auf den Filesystem-Cache des Betriebssystems einfach nicht so optimal ist wie der dedizierte Cache, den InnoDB bietet. Das kann mit neuerer Software inzwischen anders sein. Jemand könnte das mal benchmarken...
Download einzelner Seiten
Unter Spezial:Export kann man sich einzelne oder mehrere Seiten in XML herunterladen.