Jak Wikipedia generuje swoją mapę witryny?

9

Temat mnie interesuje ze względu na rozmiar Wikipedii. Utworzenie niektórych cronów do okresowej aktualizacji map witryn na małej stronie może być łatwe, ale co z dużą? Więc:

Jak Wikipedia generuje swoją mapę witryny?


źródło

Odpowiedzi:

9

Jest generowany dynamicznie przez skrypt PHP. W przypadku dużych witryn prawdopodobnie lepiej jest sprawdzić zmiany i wygenerować tylko, jeśli coś się zmieniło - lub wygenerować to tylko co XY minut / godzin / dni. To zależy od infrastruktury.

Potrzebne informacje znajdują się w bazie danych, więc nie jest to takie trudne zadanie.

A oto dowód: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap. php

Edycja: Ach, a to może być również interesujące w tym temacie:

Gregor
źródło
Czy możesz użyć kodu PHP do wygenerowania mapy witryny dla dużych witryn? Czy masz na myśli słowo „dynamicznie”, że mapa witryny jest generowana nieco automatycznie i w razie potrzeby wprowadza niewielkie zmiany w kodzie?
Czy możesz wyjaśnić zdanie „Wszystkie potrzebne informacje znajdują się w bazie danych, więc nie jest to takie trudne zadanie”. Gdzie mogę zobaczyć bazę danych?
Myślę, że ma na myśli, że wszystkie informacje znajdują się w bazie danych mediawiki. Jeśli nie jesteś jednym z administratorów lub DBA wikipedii, prawdopodobnie nie możesz uzyskać bezpośredniego dostępu do ich DB.
Cian,
3
Myślę też, że OP próbuje wypracować sposób generowania mapy witryny na „dużej” stronie, w przypadku Wikipedii jest ona w dużej mierze oparta na RDBMS (MySQL), a wszystkie strony są obsługiwane z bazy danych. Dlatego twoja baza danych zna wszystkie strony i potrzebujesz do tego prostego skryptu PHP (link powyżej z Subversion). W przypadku innych witryn opartych na różnych technologiach okaże się, że potrzebne jest inne podejście. Ostatnim razem, gdy sprawdzałem, że Wikipedia opublikowała swoje bazy danych do pobrania, a przynajmniej opublikowała ich zawartość w pliku .SQL.
nixgeek
1
Oto [Wikipedia DB Dump] [1] :-) [1]: en.wikipedia.org/wiki/…
Gregor
1

Jakiś czas temu stanęłem przed zadaniem stworzenia mapy witryny dla naszej witryny. Chociaż nie jest wielkości Wikipedii, wciąż ma około stu tysięcy stron, a około 5% z nich jest codziennie zmienianych, dodawanych lub usuwanych.

Ponieważ umieszczenie wszystkich odniesień do stron w jednym pliku spowodowałoby, że byłby on zbyt duży, musiałem podzielić je na sekcje. Indeks mapy witryny wskazuje na stronę aspx z ciągiem zapytania dla jednej z 17 różnych sekcji. W zależności od ciągu zapytania strona zwraca xml odnoszący się do kilku tysięcy stron, w oparciu o obiekty istniejące w bazie danych.

Mapa strony nie jest więc tworzona okresowo, zamiast tego jest tworzona w locie, gdy ktoś o to poprosi. Ponieważ mamy już system buforowania wyszukiwań w bazie danych, jest on oczywiście używany do pobierania danych również dla mapy witryny.

Guffa
źródło
Dlaczego głosowanie negatywne? Jeśli nie wyjaśnisz, co uważasz za niewłaściwe, nie może poprawić odpowiedzi.
Guffa,
1

Chociaż kod generowania mapy witryny znajduje się w głównym narzędziu MediaWiki i na pewno byłaby opcją wybraną do stworzenia mapy witryny, nie widzę żadnych dowodów na to, że Wikipedia włączyła go. Plik robots.txt nie wskazuje żadnych map witryn.

Ponadto, każdy skrypt konserwacyjny uruchamiany w projektach Wikimedia jest kontrolowany przez marionetkę, aw repozytorium marionetek nie ma instancji generateSitemap.php . Na koniec nie ma też mapy strony na zrzutach dla żadnej wiki Wikimedia , podczas gdy istnieją „ streszczenia dla Yahoo ”.

W każdym razie Wikipedia uruchamia bufory Squid przed swoimi serwerami aplikacji. Mogą kontrolować częstotliwość aktualizacji mapy witryny, dostosowując czas wygaśnięcia strony.

Co więcej, to, co Wikipedia robi w celu indeksowania, nie jest dobrym modelem dla twojej wiki, ponieważ Google ma specjalne kontakty / oferty / obsługę Wikipedii, zobacz najnowszy przykład .

Brianegge
źródło
+1 inteligentna obserwacja
1
Nie ma żadnego powodu, aby oczekiwać, że plik robots.txt odwołuje się do mapy witryny, więc brak takiego odniesienia tak naprawdę niczego nie dowodzi.
John Gardeniers,
0

Nie jestem pewien, ale myślę, że używają rozszerzenia Google Sitemap dla MediaWiki. Obsługuje to strona Wikipedia w mapach witryn .

Keith
źródło