web-dev-qa-db-ja.com

ウィキペディアはどのようにサイトマップを生成しますか?

ウィキペディアのサイズのため、このトピックは私に興味を持っています。小さなサイトで定期的にサイトマップを更新するためにいくつかのcronを作成するのは簡単かもしれませんが、大きなサイトはどうでしょうか?そう:

ウィキペディアはどのようにサイトマップを生成しますか?

9
user10608

PHPスクリプトによって動的に生成されます。大規模なサイトの場合は、変更を確認し、何かが変更された場合にのみ生成するか、XY分/時間/日ごとにのみ生成することをお勧めします。インフラストラクチャ。

必要な情報はすべてデータベースにあるので、それほど難しい作業ではありません。

そしてここに証拠があります: http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/maintenance/generateSitemap.php?view=log / http:// www .mediawiki.org/wiki/Manual:GenerateSitemap.php

編集:ああ、これもこのトピックにとって興味深いかもしれません:

9
Gregor

しばらく前に、私たちのWebサイトのサイトマップを作成するという課題に直面しました。ウィキペディアほどの大きさではありませんが、それでも約10万ページあり、その約5%が毎日変更、追加、削除されています。

すべてのページ参照を1つのファイルに入れると大きくなりすぎるため、セクションに分割する必要がありました。サイトマップインデックスは、17の異なるセクションのいずれかのクエリ文字列を含むaspxページを指します。クエリ文字列に応じて、ページは、データベースに存在するオブジェクトに基づいて、数千ページを参照するxmlを返します。

そのため、サイトマップは定期的に作成されるのではなく、誰かが要求したときにその場で作成されます。データベース検索をキャッシュするシステムがすでにあるので、これはもちろんサイトマップのデータをフェッチするためにも使用されます。

1
Guffa

サイトマップ生成コード MediaWikiコアマスターにあります そして確かにサイトマップを作成するために選択されたオプションですが、ウィキペディアが実際にそれをオンにしているという証拠は見当たりません。 robots.txtファイルはサイトマップを指していません。

さらに、ウィキメディアプロジェクトで実行されるメンテナンススクリプトはすべてpuppetによって制御され、 puppetリポジトリにgenerateSitemap.phpのインスタンスはありません があります。最後に、 ウィキメディアウィキのダンプ にもサイトマップはありませんが、 " Yahooの要約 "があります。

いずれにせよ、ウィキペディアはアプリサーバーの前でSquidキャッシュを実行します。ページの有効期限を調整することで、サイトマップを更新する頻度を制御できます。

さらに、グーグルはウィキペディアの特別な連絡先/取引/取り扱いを持っているので、ウィキペディアが索引付けのために行うことはあなたのウィキにとって良いモデルではありません。 最近の例 を参照してください。

1
brianegge

私は前向きではありませんが、MediaWikiの Google Sitemap 拡張機能を使用していると思います。これは、 サイトマップ のウィキペディアページでサポートされています。

0
Keith