http://dumps.wikimedia.org/jawiki/latest/
# wget http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles-multistream.xml.bz2
# bunzip2 jawiki-lasest-pages-articles.xml.bz2
# cd /usr/local/solr/{プロジェクト名}/solr
この中の「collection1」ディレクトリがコレクションの本体になる これを任意の名前に変更する 今回はWikipediaのarticleのため、「article」コレクションとする
# mv collection1 article
# vi /usr/local/solr/{プロジェクト名}/solr/article/core.properties
name=article
# vi /usr/local/solr/{プロジェクト名}/solr/article/conf/schema.xml
articles.xmlの定義に沿ってスキーマを設定
<schema name="example" version="1.5">
-- 中略 --
<fields>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="string" indexed="true" stored="true" required="true" />
<field name="revision" type="int" indexed="false" stored="true" />
<field name="user" type="string" indexed="true" stored="true" />
<field name="userId" type="int" indexed="false" stored="true" />
<field name="text" type="text_cjk" indexed="true" stored="true" required="true" />
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
<field name="titleText" type="text_cjk" indexed="true" stored="true"/>
</fields>
<copyField source="title" dest="titleText"/>
-- 中略 --
# これ以下にある<copyField>, <dynamicField>の記述は起動時にエラーになるため削除する
</schema>
<fields>
は65行目〜250行目当たりにある
一旦すべて削除して必要な記述だけ記載
###メモ ####DynamicField Solr実行時に動的にフィールドの定義を行うもの
####CopyField ドキュメント追加時にsource属性の値をdest属性にコピー
# vi /usr/local/solr/{プロジェクト名}/solr/article/conf/solrconfig.xml
データインポート用の設定を追加
<config>
-- 中略 --
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">wikipedia-article-config.xml</str>
</lst>
</requestHandler>
-- 中略 --
</config>
# vi /usr/local/solr/{プロジェクト名}/solr/article/conf/wikipedia-article-config.xml
上記solrconfig.xmlで定義したに対応するファイルを新規作成
<dataConfig>
<dataSource type="FileDataSource" encoding="UTF-8" />
<document>
<entity name="page"
processor="XPathEntityProcessor"
stream="true"
forEach="/mediawiki/page/"
url="{jawiki-laster-pages-atricles.xmlの解凍先パス}/jawiki-latest-pages-articles.xml"
transformer="RegexTransformer,DateFormatTransformer"
>
<field column="id" xpath="/mediawiki/page/id" />
<field column="title" xpath="/mediawiki/page/title" />
<field column="revision" xpath="/mediawiki/page/revision/id" />
<field column="user" xpath="/mediawiki/page/revision/contributor/username" />
<field column="userId" xpath="/mediawiki/page/revision/contributor/id" />
<field column="text" xpath="/mediawiki/page/revision/text" />
<field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
<field column="$skipDoc" regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/>
</entity>
</document>
</dataConfig>
# /etc/init.d/solr restart
ブラウザからアクセス http://localhost:8983/solr/
左タブの「Core Selector」→上記で指定したコレクション名に移動 「Dataimport」をクリックし、「Execute」をクリック
※エラーが出た際は、左タブ「Logging」の内容を見ながら対処