solrに形態素解析senの導入

2010/07/27


Solrには日本語の形態素解析器が含まれてないので、
仕方がないからその導入手順を書いちゃうハメになってます。
そもそも形態素解析が何?って人は調べてください。

Senのダウンロード

https://sen.dev.java.net/servlets/ProjectDocumentList?folderID=755&expandFolder=755&folderID=0
からsen-1.2.2.1をダウンロードして任意の場所(以後$SENとする)に解凍する。

Antのインストール

Senを解凍してもそのままじゃ使えない?くて辞書をビルドする必要があるようです。
ビルドするにはAntがいるので、下記からダウンロードして任意の場所(以後$ANTとする)に解凍する。
http://ant.apache.org/

次にAntを実行するために$ANT/binにパスを通す。
ここら辺はJAVAとかで色々やったと思うので省略。

ちゃんとパスが通ったかどうかはコマンドプロンプトから、
ant -versionと打てば確認できる。

Senの辞書をビルド

以上の設定が終わったら辞書ディレクトリに移動してビルドを行う。

cd $SEN/dic
ant

"BUILD SUCCESSFUL"と表示されたら正常にビルドができたことになる。
けど、"BUILD FAILED"になった場合はperlのパスを確認する。

$PERL/binがパスに設定されていない場合は、パスを通すか、
antの実行時にオプションとして、

ant -Dperl.bin=$PERL\bin/perl

としてやればいい。

Jarの追加

ビルドした$SENディレクトリをプロジェクト直下に移動。
また、$SEN内にあるlucene-ja.jarとsen.jarをプロジェクトのWEB-INF/libないに移動し、 Eclipseのビルドパスの構成からクラスパスに追加してやる。
※エクスプローラ上でjarを移動した際はF5でプロジェクトの更新が必要。

schema.xmlの定義

これまでで形態素解析が利用できる環境が整ったので、
schema.xmlに以下のように定義してやる。


<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.2">
<types>
    <fieldType name="text_sen" class="solr.TextField">
        <analyzer class="org.apache.lucene.analysis.ja.JapaneseAnalyzer" />
    </fieldType>
</types>
<fields>
    ・・・
</fields>
</schema>

tomcatの起動オプション設定

あとはtomcatの起動オプションに$SENホームを追加する。
WTPを利用しているなら、サーバビューからサーバの設定ファイルを開く。
「起動構成を開く」の先の引数タブ内のVM引数欄に以下の記述を書く。


-Dsen.home=$SEN

あとはtomcatを起動するだけ!
疲れた!

Senの動作確認

最後に!! ここまでくれば後は動作確認するだけ。
tomcatを起動し、http://localhost:8080/プロジェクト名/admin/analysis.jspにアクセスし、
↓画像のようになればOK!!




0 コメント:

コメントを投稿