アプリ開発屋

アプリ開発に役立つ情報サイト

Wikipediaデータをダウンロードしてワードプレスと紐づける

ウィキペディアデータは膨大なので取り扱いが面倒、ましてや編集を施すとなる

と結構骨が折れる。

 

いきなり本番サーバーに突っ込むのは無謀ってもので、一旦、仮想サーバーに突っ込んで編集したうえで分割ダンプ、本番サーバーに流し込むってのがいいような気がする。

 

たとえばワードプレスのデータベースにウィキペディアデータ用のテーブルを追加してそこに突っ込み、ワードプレスからクエリを送りデータを取り出す・・・、みたいなことを頭に描いているなら、なおさら素のままでは使いづらい。

 

インデックスつかった高速検索かけるならpage_titleカラム内の冒頭にある記号が邪魔になるし・・・。

 

本番サーバーにダイレクトに突っ込むにしても、ssh使えればまだしも、そう恵まれた環境にない人も多いはず。

 

最低限、分割ダンプして流し込むくらいのステップは必要になる。

 

ウィキペディアデータは膨大がゆえにテーブルが細かく分かれてしまっているあたりにも編集しにくい原因がある。

 

とくにページタイトルと文章が別テーブルに分かれてしまっているのは厄介。

 

ページタイトルと文章、紐づいてるものどうしを同時に削除しないと整合性が崩れてしまい、ページタイトルカラムに検索をかけヒットに応じて紐づいてる文章を抽出しようとしたら文章が存在しなかった・・・みたいなことが起こりうる。

 

仮にこのふたつのカラムが同レコード上に存在していればなんの世話もない気がする。

 

この辺りはsqlのinner joinで内部結合しちゃうのも手かも。

 

それ以外にもウィキペディアデータでよくダウンロードの対象となる「jawiki-latest-pages-articles.xml.bz2」ファイルには素のページ情報以外にもアップロード情報や削除情報・・・など管理にまつわるデータも入っている。

 

正直言ってウィキペディアデータで辞書的な使い方を狙っている人にしてみれば、こういったデータは無用の長物以外の何物でもないので削って少しでもデータ容量を小さくしたいと思うのが当たり前。

 

結局のところローカルサーバーで編集、分割ダンプ、細切れインポート・・・みたいな方法が妥当ではないだろうか?

 

で、ローカルサーバーにウィキペディアデータを突っ込む方法として、有難迷惑なXMLファイルを流し込むには「xml2sql」じゃ今時旬じゃないし第一、提供されていない。

 

javaを使ったmwdumperでしょやっぱり。

 

というわけで必要なものはウィキペディアデータ本体の「jawiki-latest-pages-articles.xml.bz2」ファイル、テーブル定義用ファイル、インポート時に必要な「mwdumper.jar」ファイル、これに関連する「mysql-connector-java-5.1.39-bin.jar」ファイル、あとは分割ダンプ用のBashファイルがあれば便利かも。

 

テーブル定義ファイルはmediawikiに入っているやつは使えないみたい。

 

古めのやつが必要らしい。

 

ローカルサーバーへのウィキペディアデータのインポート方法については、いろんなページで紹介されているが、いちばん解りやすく解説してくれるページはここじゃないかと思う。

 

上に挙げた必要ファイルをまとめて配布してくれてる。