これから開発をしている検索機能で、
Solr-1.4をつかおうとおもったら、luceneもlucene-2.9-devでした。

で、Senを使って、lucene-ja.jarを使って、形態素解析を使おうと思ったらIllegalAccessErrorがでてしまったので
その対応をしてみた。

■ダウンロード
lucene-ja.jarのソースを取得[ダウンロード ]
lucene-ja-2.0test2.zip

を取得して、解凍

■Eclipseへインポート
Eclipseさんを使うのが楽だったので、
プロジェクト:lucene-jaJavaプロジェクトで新規作成
lucene-jaに、インポート[一般-ファイル・システム]

[$ARCHIVE\lucene-ja-2.0test2\lucene-ja]
をインポート

■ソースの修正
/lucene-ja/src/org/apache/lucene/analysis/ja/DigitFilter.java
/lucene-ja/src/org/apache/lucene/analysis/ja/KatakanaStemFilter.java
/lucene-ja/src/org/apache/lucene/analysis/ja/MonitorFilter.java
/lucene-ja/src/org/apache/lucene/analysis/ja/POSFilter.java
これらのコンストラクタで、
input = in;
とある部分をコメントアウト。
※TokenFilter.inputがfinalになっていて、上書きができなかった
※しっかりソースを追っていないのだけど、super(in)があり、その時点で埋め込んでると思われます。

/lucene-ja/src/org/apache/lucene/analysis/ja/NormalizeReader.java
テキスト・ファイル・エンコードを[SJIS]へ変更


※以下はうまくいかなかった・・・・・
■ビルド・バスへ追加
/lucene-ja/libにあるjarファイルをビルド・パスに追加

■Jar形式でエクスポート
/lucene-ja/src/org/apache/lucene/analysis/cjk
/lucene-ja/src/org/apache/lucene/analysis/ja
/lucene-ja/src/org/apache/lucene/analysis/ja/chasen
/lucene-ja/src/org/apache/lucene/analysis/ja/sen
/lucene-ja/src/org/apache/lucene/demo
を選択して、エクスポート
適当なフォルダに、lucene-ja.jar とすして、エクスポート
※/lucene-ja/dist というフォルダをほり、そこに作成しました。
※若干エラーはでていたようだけど、動いたのでいいか・・・(lucene-2.9でdeprecatedになってるところかな)

※Antとかbuild.xmlをつかって~とかMavenを使ってーってのがあるとは思うけど
※めんどくさかったので、Eclipseでやってみました。

出来上がったlucene-ja.jarをApache Solrのlibに配置して完了

lucene-2.9では、Tokenとかがdeprecatedになっており、3.0からは使えなくなるので、びしっと書き換えないといけないかもですね・・・・