web-dev-qa-db-ja.com

大きなMediaWikiサイトのサイトマップはどのように生成されますか?

この質問は、物事に関する私の質問 Wikipediaのファイルシステム および Wikipediaのサイトマップの生成 に関連しています。より一般的です。

問題:約10,000ページのMediaWikiのサイトが検索エンジンによって部分的にインデックス付けされていると仮定すると、 the spects

質問:検索エンジンでの可視性を保証するために、どのように大きなサイトのサイトマップを生成できますか?

4
user8926
3
jacktrade

MediaWikiサイトのコンテンツはすべてリレーショナルデータベース(RDBMS)にあります。サイトマップを生成するコードは、基本的にSQL SELECTクエリを実行して、すべてのページに必要な情報を取得します。おそらく単一のSQLクエリ(ページごとに1行を返す)で実行可能です。そのためのコードは非常に簡単です。

コンテンツ管理システム(CMS)を使用する大規模なサイトでは、100万ページある場合でも、同様に簡単にサイトマップを作成できます。データベースを照会し、結果を適切なサイトマップ形式にフォーマットします。検索とほとんど同じ種類のコードですが、WHERE句が1つ減り(すべてを返す)、ページネーションは不要です。データベースのタイプとスキーマは、これがどれほど簡単かを左右しますが、一般に、CMSはデータベース内のフィールドとして、ページ名、URL(URLの生成に必要なフィールド)、変更日などを持ちます。

この質問と他の2つは、MediaWikiサイトがファイルでいっぱいのディレクトリの束ではなく、リレーショナルデータベースを使用していることを本当に理解していないように思われます。

haveサイトマップを生成しようとしている大規模なサイトですか?データはどのように保存されますか?ファイルシステム上の単純な昔ながらのファイル?

1
freiheit

開発者に関する限り、ほとんどの公開サイトには少数の「ページ」しかありません。

たとえば、サーバー障害は、おそらく約20の異なるページのみで構成されています。これが意味することは、バックエンドデータベースの情報に基づいてサイトマップの大部分を動的に生成し、次にいくつかの余分なページを静的に追加できることです。

1
Spencer Ruport

とても簡単です。

php maintenance/generateSitemap.php \
   --fspath sitemap \
   --server http://example.org \
   --urlpath http://example.org/sitemap

詳細については、 generateSitemap.php manual をご覧ください。

他の回答で提案されているDIYソリューションは最適ではありません。

0
Nemo

いくつかのオプションがあります。

社内で構築された大規模なWebサイトの場合、おそらくデータベースクエリに基づいてサイトマップを構築します。また、ホームページで起動してウェブサイト全体をクロールするさまざまなサイトマップジェネレータを使用して、自分で「googlebot」を実行するオプションもあります。これにより、サイトマップファイルが自動的に作成されます。

一部の大規模なWebサイトのサイトマップのクロールと構築には、このソフトウェアを使用します。

http://www.xml-sitemaps.com/

0
Matt Beckman