ウィキペディアのサイズのせいで、このトピックは私に興味を持っています。小さなサイトでサイトマップを定期的に更新するためにいくつかのcronを作成するのは簡単かもしれませんが、大きなサイトはどうでしょうか?そう:
ウィキペディアはどのようにしてサイトマップを生成しますか?
ウィキペディアのサイズのせいで、このトピックは私に興味を持っています。小さなサイトでサイトマップを定期的に更新するためにいくつかのcronを作成するのは簡単かもしれませんが、大きなサイトはどうでしょうか?そう:
ウィキペディアはどのようにしてサイトマップを生成しますか?
回答:
PHPスクリプトによって動的に生成されます。大規模なサイトでは、変更をチェックして、何かが変更された場合にのみ生成するか、XY分/時間/日ごとにのみ生成する方が良いでしょう。それはインフラに依存します。
必要な情報はすべてデータベースにあるため、それほど難しい作業ではありません。
そしてここに証明があります:http : //svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php ?view= log / http://www.mediawiki.org/wiki/Manual:GenerateSitemap php
編集:ああ、これはこのトピックにとっても興味深いかもしれません:
しばらく前に、私たちのWebサイトのサイトマップを作成するタスクに直面しました。それはウィキペディアのサイズではありませんが、それでも約10万ページであり、それらの約5%が毎日変更、追加、または削除されます。
すべてのページ参照を1つのファイルに入れるとファイルが大きくなりすぎるため、セクションに分割する必要がありました。サイトマップインデックスは、17の異なるセクションの1つに対するクエリ文字列を含むaspxページを指します。クエリ文字列に応じて、ページはデータベースに存在するオブジェクトに基づいて、数千のページを参照するxmlを返します。
そのため、サイトマップは定期的に作成されるのではなく、誰かが要求したときにオンザフライで作成されます。データベース検索をキャッシュするシステムはすでにあるので、これはもちろんサイトマップのデータをフェッチするためにも使用されます。
サイトマップ生成コードはMediaWikiコアマスターにあり、確かにサイトマップを生成するために選択されるオプションですが、ウィキペディアで実際に有効になっているという証拠はありません。robots.txtファイルはサイトマップを指していません。
さらに、Wikimediaプロジェクトで実行されるメンテナンススクリプトはpuppetによって制御され、puppetリポジトリにgenerateSitemap.phpのインスタンスはありません。最後に、どのWikimedia wikiのダンプにもサイトマップはありませんが、「Yahooの要約」があります。
いずれにせよ、ウィキペディアはアプリサーバーの前でSquidキャッシュを実行します。ページの有効期限を調整することで、サイトマップの更新頻度を制御できます。
さらに、ウィキペディアがインデックス作成のために行うことは、ウィキペディアにとって適切なモデルではありません。Googleには特別な連絡先/取引/ウィキペディアの処理があるためです。最近の例を参照してください。
私は肯定的ではありませんが、MediaWikiのGoogleサイトマップ拡張機能を使用していると思います。これは、サイトマップのWikipediaページでサポートされています。