« タグを指定した状態で検索語を指定するとタグで絞り込んだ結果になる | メイン | ant 実行中に OutOfMemoryError »

JapaneseAnalyzer を使う

JiroSearch は Spring Framework を使っているので、 設定の大部分を applicationContext.xml を編集して変更することができる。 JiroSearch は Lucene の CJKAnalyzer を使っているが、 これを JapaneseAnalyzer を使うように変更する方法は次の通り。

WEB-INF/applicationContext.xml 内に、次のような記述がある。

  <bean id="analyzer"
    class="org.apache.lucene.analysis.cjk.CJKAnalyzer"/>

これを、次のように変更する。

  <bean id="analyzer"
    class="org.apache.lucene.analysis.ja.JapaneseAnalyzer">
    <constructor-arg type="java.lang.String"
      value="/usr/local/jiro/sen-1.2.2.1/conf/sen.xml"/>
  </bean>

変更箇所はここだけで、 Java のプログラムの再コンパイル等は一切必要ない。 ただし、 analyzer を入れ替えたら今までの index は使えないので、 index の再構築が必要になる。 具体的には、 fileInfo.xml と、index ディレクトリの中身を削除して、 ant で fileCrawler、createIndex を実行する。 もちろん、sen を事前にインストールしておく必要がある。

sen は環境変数をみてインストールされたディレクトリを判定する仕組だが、 コンストラクタに設定ファイル sen.xml を指定すれば、 環境変数を指定しなくても使うことができる。 Spring Framework でコンストラクタを使った初期化を行うには、 前述の例のように constructor-arg を使う。 例は /usr/local/jiro/ に sen1.2.2.1 をインストールした場合のもので、 他の場所にインストールした場合は、 インストールしたディレクトリの conf/sen.xml を指すように指定すればよい。

JiroSearch 側の設定変更はこれだけだが、 動作させるためには、 sen.jar と lucene-ja.jar が必要になるので、 これらを WEB-INF/lib にコピーしておく。

これらのライブラリは、 https://sen.dev.java.net/servlets/ProjectDocumentList?folderID=755&expandFolder=755&folderID=0 からダウンロードする。 こちらの動作確認には、 lucene-ja-2.0test2.zip の Japa に入っている lucene-ja.jar と、 sen-1.2.2.1.zip に入っている sen.jar を使った。 lucene-ja-2.0test2.zip にも sen.jar が入っているので、 そちらを使ってもいいと思われるが、 sen-1.2.2.1.zip に入っているものの方が日付が新しいので、 そちらを使った。

トラックバック

このエントリーのトラックバックURL:
http://blog.crm.co.jp/mt-cgi/mt-tb.cgi/141

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

開発製品

jirologos.gif

About

2006年12月04日 03:15に投稿されたエントリのページです。

ひとつ前の投稿は「タグを指定した状態で検索語を指定するとタグで絞り込んだ結果になる」です。

次の投稿は「ant 実行中に OutOfMemoryError」です。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Powered by
Movable Type