Як Wikipedia створює свою мапу сайту?


9

Тема мене цікавить через розмір Вікіпедії. Створити кілька кронів, щоб періодично оновлювати мапи сайту на невеликому веб-сайті, може бути легко, але як бути з великим? Тому:

Як Wikipedia створює свою мапу сайту?

Відповіді:


9

Він динамічно генерується за допомогою сценарію PHP. Для великих сайтів, мабуть, краще перевірити зміни та створити лише те, якщо щось змінилося - або генерувати їх лише кожні XY хвилин / години / дні. Це залежить від інфраструктури.

Інформація, яка необхідна, є у базі даних, тому це не таке складне завдання.

І ось доказ: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap. php

Редагувати: А, і це також може бути цікаво для цієї теми:


Чи можете ви використовувати PHP-код для створення карти сайту для будь-яких великих сайтів? Ви маєте на увазі під словом "динамічно", що мапа сайту генерується дещо автоматично і вносить незначні зміни в код, коли це потрібно?

Чи можете ви уточнити речення "Потрібна інформація є у базі даних, тому це не таке важке завдання"? Де я можу побачити базу даних?

Я думаю, що він означає, що вся інформація знаходиться в базі даних, що лежить в основі mediawiki. Якщо ви не є одним із системних адміністраторів або DBA-адрес wikipedia, ви, ймовірно, не можете отримати прямий доступ до їх БД.
Cian

3
Я також думаю, що ОП намагається розробити, як створити мапу сайту на "великому" сайті, у випадку з Вікіпедією це дуже багато на основі RDBMS (MySQL), при цьому всі сторінки подаються з бази даних. Тому ваш БД знає всі сторінки, і вам потрібен простий PHP-скрипт (пов'язаний вище з Subversion). Що стосується інших сайтів, керованих різними технологіями, то ви побачите, що необхідний підхід відрізняється. Востаннє я перевіряв, чи видає Вікіпедія їхні бази даних для завантаження, або, принаймні, вони публікують їх вміст у файлі .SQL.
nixgeek

1
Ось [Вікіпедія DB Dump] [1] :-) [1]: en.wikipedia.org/wiki/…
Грегор

1

Я зіткнувся із завданням створити карту сайту для нашого веб-сайту на деякий час назад. Хоча це не розмір Вікіпедії, це все ще близько ста тисяч сторінок, і близько 5% з них щодня змінюються, додаються або видаляються.

Оскільки розміщення всіх посилань на сторінку в одному файлі зробило б це занадто великим, я повинен був розділити їх на розділи. Індекс карти сайту вказує на сторінку aspx із рядком запиту для одного з 17 різних розділів. Залежно від рядка запиту, на сторінку повертається xml, що посилається на кілька тисяч сторінок, на основі яких об'єктів існує в базі даних.

Отже, карта сайту не створюється періодично, натомість вона створюється на ходу, коли хтось її вимагає. Оскільки у нас вже є система кешування пошуку в базі даних, це, звичайно, також використовується для отримання даних для карти сайту.


Чому потік? Якщо ви не поясните, що ви вважаєте неправильним, це не може покращити відповідь.
Гуффа

1

Хоча код генерації мапи сайту є основним майстром MediaWiki і, безумовно, буде обраний варіант для створення карти сайту, я не бачу жодних доказів того, що Вікіпедія насправді ввімкнула його. Файл robots.txt не вказує на будь-які карти сайту.

Крім того, будь-який сценарій технічного обслуговування, запущений на проектах Wikimedia, контролюється маріонеткою, і в маріонетковому сховищі немає жодного примірника originSitemap.php . Нарешті, немає жодної мапи сайту на дампах для жодної вікі Wikimedia , в той час як є " тези для Yahoo ".

У будь-якому випадку, Вікіпедія запускає кеші кальмарів перед їх серверами додатків. Вони можуть контролювати, як часто оновлюється їх карта сайту, регулюючи термін дії сторінки.

Більше того, те, що робить Wikipedia для індексації, не є хорошою моделлю для вашої вікі, оскільки Google має спеціальні контакти / угоди / обробку Вікіпедії, див. Останній приклад .


+1 розумне спостереження

1
Немає реальної причини сподіватися, що robots.txt посилається на мапу сайту, тому відсутність такої посилання насправді нічого не підтверджує.
John Gardeniers

0

Я не позитивний, але думаю, що вони використовують розширення Google Sitemap для MediaWiki. Це підтримується сторінкою Вікіпедії на Картах .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.