¿Cómo genera Wikipedia su Sitemap?

9

El tema me interesa por el tamaño de Wikipedia. Puede ser fácil crear algunos crons para actualizar periódicamente los mapas de sitio en un sitio pequeño, pero ¿qué pasa con uno grande? Entonces:

¿Cómo genera Wikipedia su Sitemap?


fuente

Respuestas:

9

Es generado dinámicamente por un script PHP. Para sitios grandes, probablemente sea mejor verificar los cambios y solo generar si algo cambió, o generarlo solo cada XY minutos / horas / días. Depende de la infraestructura.

Toda la información necesaria está en la base de datos, por lo que no es una tarea tan difícil.

Y aquí está la prueba: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap. php

Editar: Ah, y esto también podría ser interesante para este tema:

Gregor
fuente
¿Podría usar el código PHP para generar el mapa del sitio para sitios grandes? ¿Quiere decir con la palabra "dinámicamente" que el mapa del sitio se genera de forma algo automática y que realiza pequeños cambios en el código cuando es necesario?
¿Puede aclarar la frase "La información necesaria está en la base de datos, por lo que no es una tarea tan difícil"? ¿Dónde puedo ver la base de datos?
Creo que quiere decir que toda la información está en la base de datos subyacente mediawiki. A menos que sea uno de los administradores de sistemas o DBA de Wikipedia, probablemente no pueda obtener acceso directo a su base de datos.
Cian el
3
También creo que el OP está tratando de resolver cómo generar un Sitemap en un sitio 'grande', en el caso de Wikipedia está muy basado en RDBMS (MySQL) con todas las páginas servidas fuera de la base de datos. Por lo tanto, su base de datos conoce todas las páginas y necesita un script PHP simple (vinculado anteriormente desde Subversion) para hacerlo. En el caso de otros sitios, impulsados ​​por diferentes tecnologías, encontrará que el enfoque necesario es diferente. La última vez que revisé que Wikipedia publicó sus bases de datos para descargar, o al menos, publicaron su contenido en un archivo .SQL.
nixgeek
1
Aquí está el [Volcado de base de datos de Wikipedia] [1] :-) [1]: en.wikipedia.org/wiki/…
Gregor
1

Me enfrenté a la tarea de crear un mapa del sitio para nuestro sitio web hace un tiempo. Aunque no es del tamaño de Wikipedia, todavía tiene alrededor de cien mil páginas, y alrededor del 5% de ellas se cambian, agregan o eliminan diariamente.

Como poner todas las referencias de página en un solo archivo lo haría demasiado grande, tuve que dividirlas en secciones. El índice del mapa del sitio apunta a una página aspx con una cadena de consulta para una de las 17 secciones diferentes. Dependiendo de la cadena de consulta, la página devuelve un xml que hace referencia a varios miles de páginas, en función de qué objetos existen en la base de datos.

Por lo tanto, el mapa del sitio no se crea periódicamente, sino que se crea sobre la marcha cuando alguien lo solicita. Como ya tenemos un sistema para el almacenamiento en caché de las búsquedas en la base de datos, esto también se utiliza para obtener datos para el mapa del sitio.

Guffa
fuente
¿Por qué el voto negativo? Si no explica qué es lo que cree que está mal, no puede mejorar la respuesta.
Guffa
1

Aunque el código de generación del mapa del sitio está en el maestro principal de MediaWiki y ciertamente sería la opción elegida para producir un mapa del sitio, no veo ninguna evidencia de que Wikipedia realmente lo tenga activado. El archivo robots.txt no apunta a ningún mapa del sitio.

Además, cualquier script de mantenimiento ejecutado en proyectos de Wikimedia está controlado por puppet y no hay ninguna instancia de generateSitemap.php en el repositorio de puppet . Finalmente, tampoco hay un mapa del sitio en los vertederos de ninguna wiki de Wikimedia , mientras que hay " resúmenes para Yahoo ".

En cualquier caso, Wikipedia ejecuta cachés de Squid frente a sus servidores de aplicaciones. Pueden controlar con qué frecuencia se actualiza su mapa del sitio ajustando el tiempo de vencimiento de la página.

Además, cualquier cosa que Wikipedia haga para indexar no es un buen modelo para su wiki, porque Google tiene contactos especiales / ofertas / manejo de Wikipedia, vea un ejemplo reciente .

brianegge
fuente
+1 observación inteligente
1
No hay una razón real para esperar que robots.txt haga referencia a un mapa del sitio, por lo que la ausencia de dicha referencia realmente no prueba nada.
John Gardeniers
0

No soy positivo, pero creo que usan la extensión Google Sitemap para MediaWiki. Esto es compatible con la página de Wikipedia en Sitemaps .

Keith
fuente