Les cartes du site ne doivent pas dépasser 10 Mo et ne doivent pas contenir plus de 50 000 URL, vous devez donc les décomposer d'une manière ou d'une autre.
Vous aurez besoin d'une stratégie de fragmentation. Je ne sais pas à quoi ressemblent vos données, donc pour l'instant disons que chaque fois que vous créez une entité de page, vous lui attribuez un entier aléatoire entre 1 et 500.
Ensuite, créez un Sitemap index et crachez un sitemap lien pour chacune de vos valeurs d'index:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://example.appspot.com/sitemap?random=1</loc>
</sitemap>
<sitemap>
<loc>http://example.appspot.com/sitemap?random=2</loc>
</sitemap>
...
<sitemap>
<loc>http://example.appspot.com/sitemap?random=500</loc>
</sitemap>
</sitemapindex>
Enfin, sur votre page plan du site, recherche pour les pages et le filtre pour l'index aléatoire. Si vous avez 100 000 pages, cela vous donnera environ 200 URL par sitemap.
Une stratégie légèrement différente ici serait de donner à chaque page un ID numérique auto-incrémenté. Pour ce faire, vous avez besoin d'un objet compteur verrouillé transactionnel et incrémenté chaque fois qu'une nouvelle page est créée. L'inconvénient de ceci est que vous ne pouvez pas paralléliser la création de nouvelles entités de page. L'avantage est que vous auriez un peu plus de contrôle sur la façon dont vos pages sont disposées, car votre premier sitemap pourrait être les pages 1-1000, et ainsi de suite.
génial! merci de rendre ma vie plus simple :) Je vais coder ceci dans les 30 prochaines minutes maintenant :) – demos
Belle stratégie! L'utilisation d'un compteur incrémentiel dans App Engine est généralement une mauvaise idée. –
approche intéressante – systempuntoout