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 のテキストデータを使ってベンチマークをする! その3 Solr のスキーマ設計
[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その2 Wikipedia のテキストデータを MySQL に入れるる
[Solr][MySQL] Wikipedia のテキストデータを使ってベンチマークをする! その1 思い立ったこと
データインポートハンドラの使い方は「Chapter6 データインポートハンドラ」で詳しく説明されています。日本語で書いてある資料ってスバらしい...