Wie generiert Wikipedia seine Sitemap?

9

Das Thema interessiert mich wegen der Größe von Wikipedia. Es mag einfach sein, einige Cron zu erstellen, um die Sitemaps auf einer kleinen Site regelmäßig zu aktualisieren, aber was ist mit einer großen? So:

Wie generiert Wikipedia seine Sitemap?


quelle

Antworten:

9

Es wird dynamisch von einem PHP-Skript generiert. Bei großen Websites ist es wahrscheinlich besser, nach Änderungen zu suchen und nur zu generieren, wenn sich etwas geändert hat - oder nur alle XY Minuten / Stunden / Tage. Das hängt von der Infrastruktur ab.

Die benötigten Informationen befinden sich alle in der Datenbank, daher ist dies keine so schwierige Aufgabe.

Und hier ist der Beweis: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap. php

Edit: Ah und das könnte auch für dieses Thema interessant sein:

Gregor
quelle
Könnten Sie den PHP-Code verwenden, um die Sitemap für große Websites zu generieren? Meinen Sie mit dem Wort "dynamisch", dass die Sitemap etwas automatisch generiert wird und bei Bedarf geringfügige Änderungen am Code vornimmt?
Können Sie den Satz "Die benötigten Informationen befinden sich alle in der Datenbank, es ist also keine so schwere Aufgabe." Klarstellen? Wo kann ich die Datenbank sehen?
Ich denke, er meint, dass sich alle Informationen in der Datenbank befinden, die dem Medienwiki zugrunde liegt. Wenn Sie nicht einer der Sysadmins oder DBAs von Wikipedia sind, können Sie wahrscheinlich keinen direkten Zugriff auf deren Datenbank erhalten.
Cian
3
Ich denke auch, dass das OP versucht, herauszufinden, wie eine Sitemap auf einer "großen" Site generiert werden kann. Im Fall von Wikipedia ist es sehr RDBMS-gesteuert (MySQL), wobei alle Seiten aus der Datenbank bereitgestellt werden. Daher kennt Ihre Datenbank alle Seiten und Sie benötigen dazu ein einfaches PHP-Skript (oben von Subversion verlinkt). Bei anderen Websites, die von unterschiedlichen Technologien angetrieben werden, werden Sie feststellen, dass der erforderliche Ansatz unterschiedlich ist. Als ich das letzte Mal nachgesehen habe, dass Wikipedia ihre Datenbanken zum Download veröffentlicht hat, haben sie zumindest ihren Inhalt in einer .SQL-Datei veröffentlicht.
Nixgeek
1
Hier ist der [Wikipedia DB Dump] [1] :-) [1]: en.wikipedia.org/wiki/…
Gregor
1

Ich stand vor einiger Zeit vor der Aufgabe, eine Sitemap für unsere Website zu erstellen. Obwohl es nicht die Größe von Wikipedia hat, sind es immer noch rund hunderttausend Seiten, und ungefähr 5% von ihnen werden täglich geändert, hinzugefügt oder entfernt.

Da das Einfügen aller Seitenverweise in eine einzige Datei zu groß wäre, musste ich sie in Abschnitte unterteilen. Der Site Map-Index verweist auf eine Aspx-Seite mit einer Abfragezeichenfolge für einen von 17 verschiedenen Abschnitten. Abhängig von der Abfragezeichenfolge gibt die Seite eine XML-Datei zurück, die auf mehrere tausend Seiten verweist, basierend darauf, welche Objekte in der Datenbank vorhanden sind.

Die Sitemap wird also nicht regelmäßig erstellt, sondern wird sofort erstellt, wenn jemand sie anfordert. Da wir bereits ein System zum Zwischenspeichern von Datenbanksuchen haben, wird dies natürlich auch zum Abrufen von Daten für die Sitemap verwendet.

Guffa
quelle
Warum das Downvote? Wenn Sie nicht erklären, was Sie für falsch halten, kann dies die Antwort nicht verbessern.
Guffa
1

Obwohl sich der Code zur Sitemap-Generierung im MediaWiki- Kernmaster befindet und sicherlich die Option wäre, eine Sitemap zu erstellen, sehe ich keine Beweise dafür, dass Wikipedia ihn tatsächlich aktiviert hat. Die Datei robots.txt verweist nicht auf Site Maps.

Darüber hinaus wird jedes Wartungsskript, das in Wikimedia-Projekten ausgeführt wird, von Puppet gesteuert, und es gibt keine Instanz von generateSitemap.php im Puppet-Repository . Schließlich gibt es in den Dumps auch keine Sitemap für Wikimedia-Wiki , während es " Abstracts für Yahoo " gibt.

In jedem Fall führt Wikipedia Squid-Caches vor ihren App-Servern aus. Sie können steuern, wie oft ihre Sitemap aktualisiert wird, indem sie die Ablaufzeit für die Seite anpassen.

Darüber hinaus ist alles, was Wikipedia für die Indizierung tut, kein gutes Modell für Ihr Wiki, da Google spezielle Kontakte / Angebote / Umgang mit Wikipedia hat (siehe ein aktuelles Beispiel) .

Brianegge
quelle
+1 intelligente Beobachtung
1
Es gibt keinen wirklichen Grund zu der Annahme, dass robots.txt auf eine Sitemap verweist. Das Fehlen einer solchen Referenz beweist also nichts.
John Gardeniers
0

Ich bin nicht positiv, aber ich denke, sie verwenden die Google Sitemap- Erweiterung für MediaWiki. Dies wird von der Wikipedia-Seite auf Sitemaps unterstützt .

Keith
quelle