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?

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:


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.


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 .


+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,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.