Wikipedia のテキストデータを使ってベンチマークをする! その4 データインポートハンドラ( DIH Data Import Handler ) を使って Solr にデータを入れる


MySQL に入れておいた WikiPedia のデータを Solr に入れます。

データインポートハンドラの設定

データインポートハンドラの動作を定義する db-data-config.xml を以下のように作成します。
JDBC ドライバの設定、SELECT 文、MySQLのフィールド名とSolrのフィールド名の対応のみの単純な記述です。

<dataConfig>

 <dataSource driver="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost/wiki"
  user="wiki" password="wiki!"
  useUnicode="true" characterEncoding="utf8" />

 <document>
   <entity name="DATA" pk="page_id" query="
    SELECT page_id, page_title, rev_id, rev_comment, rev_user_text,
           old_id, old_text
     FROM page p, revision r, text t
     WHERE p.page_id = r.rev_page AND r.rev_text_id = t.old_id" >
    <field column="page_id" name="page_id" />
    <field column="page_title" name="page_title" />
    <field column="rev_id" name="rev_id" />
    <field column="rev_comment" name="rev_comment" />
    <field column="rev_user_text" name="rev_user_text" />
    <field column="old_id" name="old_id" />
    <field column="old_text" name="old_text" />
   </entity>
 </document>

</dataConfig>


db-data-config.xml を conf ディレクトリに置いたらデータインポートハンドラのコンソールページにアクセスします。
localhost となっているホスト名や 8080 となっているポート番号は適宜読み替えてください。

http://localhost:8080/solr/core_wiki/admin/dataimport.jsp?handler=/dataimport


ページが表示されたら Full-import をクリックしてインデキシングスタート!



ボクの環境では約10分でインデキシングが終わりました。
インデックスのディスクサイズは約 7GBでした。元のテキストファイルは page.txt, revision.txt, text.txt あわせて約 5.5GB だったので約3割ましと行ったところです。



Wikipedia のテキストデータを使ってベンチマークをする! その7 ロードバランサー( haproxy ) を使って Solr 2台構成にしてみた


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その6 Solr は MySQL より 200倍速い!


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その5 Solr と MySQL でざっくり速度対決


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その4 データインポートハンドラ ( DIH Data Import Handler ) を使って Solr にデータを入れる


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その3 Solr のスキーマ設計


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その2 Wikipedia のテキストデータを MySQL に入れるる


[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その1 思い立ったこと



データインポートハンドラの使い方は「Chapter6 データインポートハンドラ」で詳しく説明されています。日本語で書いてある資料ってスバらしい...