Monday, December 20, 2010

[備忘録] Solr 1.4 と Sen による日本語検索環境の構築

Solr 1.4 と Sen(MeCab の Java 実装)を利用し、オープンソースのみで形態素解析による全文検索が行えるような環境構築を行ったので、その作業メモ。環境は、以下の通り。


稼働環境

MacBook Pro 15" (Unibody, Mid 2010), Core i7 2.66GHz, 8GB RAM
Mac OS X 10.6.5 Snow Leopard


1. 用意するもの

Solr 1.4.1 を、Apache Solr のサイトからダウンロード。 Sen 本体と Solr/Lucene で利用するための lucene-ja プロセッサを、java.net の Sen プロジェクトページからダウンロード



2. Sen のインストール

ダウンロードした sen-1.2.2.1.zip を、適当なディレクトリ。例として、/Users/hoge/work へ解凍する。
$ unzip sen-1.2.2.1.zip
$ cd sen-1.2.2.1
$ pwd
/Users/hoge/work/sen-1.2.2.1

デフォルトでは、EUC-JP を扱うようになっているため、UTF-8 へ設定変更する。
$ cd conf
$ vi sen.xml
charset が euc-jp となっている部分を utf-8 へ書き換える。

$ vi sen-processor.xml
charset が euc-jp となっている部分を utf-8 へ書き換える。

辞書を UTF-8 でビルドするため、プロパティファイルを変更する。
$ cd ../dic
$ vi dictionary.properties
sen.charset=EUC-JP を sen.charset=utf-8 へ書き換える。
その他は、そのままとする。

辞書をビルドする。
$ ant
アーカイブをダウンロードし解凍、ビルドを行う。
もし、sen 本体を再ビルドする場合は、1つ上のディレクトリへ戻り、ビルドを行う。
$ cd ..
$ pwd
/Users/hoge/work/sen-1.2.2.1
$ ant
jar ファイルを solr のライブラリディレクトリへコピーする。
$ cp lib/sen.jar <SOLR_INST_DIR>/example/solr/lib
# lib ディレクトリが無い場合には、作成する。



3. lucene-ja のインストール

sen は、日本語形態素解析エンジンであり、これを Solr/Lucene から利用するためには、Solr/Lucene のAPIを利用したプロセッサ(要は、ラッパーあるいは、コネクタ)が必要となり、これが lucene-ja.jar となる。
ダウンロードした、lucene-ja-2.0test2.zip を適当なディレクトリ、例として /Users/hoge/work へ解凍
$ unzip lucene-ja-2.0test2.zip
$ cd lucene-ja
$ pwd
/Users/hoge/work/lucene-ja
jar ファイルを solr のライブラリディレクトリへコピーする。
$ cp lib/lucene-ja.jar <SOLR_INST_DIR>/example/solr/lib


4. Solr のインストール

ダウンロードした、apache-solr-1.4.1.tgz を適当なディレクトリ、例として、/Users/hoge/work へ解凍する。
$ tar zxvf apache-solr-1.4.1.tgz
$ cd apache-solr-1.4.1
$ pwd
/Users/hoge/work/apache-solr-1.4.1

インスタンスは、example のものを利用するので、SOLR_HOME は、example ディレクトリとなる。
$ export SOLR_HOME=/Users/hoge/work/apache-solr-1.4.1/example



5. Solr の設定

schema.xml の設定
$ cd $SOLR_HOME/solr/conf
$ vi schema.xml
以下のように sen 用のフィールドタイプを追加
<!-- This is an example of using sen for Japanese analysis and tokenization -->
<fieldType name="text_sen" class="solr.TextField">
  <analyzer class="org.apache.lucene.analysis.ja.JapaneseAnalyzer"/>
</fieldType>
<!-- sen -->
fields エントリは、とりあえずそのまま。先ずは、Solr が正常に起動することを確認し、Field Analysis 画面で sen の動作を確認する。



6. Solr の起動

上記 2. での sen インストールディレクトリ、例では、/Users/hoge/work/sen-1.2.2.1 を SEN_HOME として環境変数をセットする。
$ export SEN_HOME=/Users/hoge/work/sen-1.2.2.1
Solr を起動する。
$ cd <SOLR_INST_DIR>
$ java -Dsen.home=$SEN_HOME -jar start.jar

と、ここで問題発生!
solr 1.4 が起動しない。
SEVERE: java.lang.IllegalAccessError
が出ている。

ということで、lucene-ja を Eclipse などで開いてみると。
以下のコンストラクタで、input=in としている部分があるので、コメントアウトする。
コンストラクタ内の super(in) により、TokenFilter の protected final TokenStream input に in がセットされるので、動作は、問題ないです。
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

さらに、以下のファイルのエンコードを UTF-8 へ変更し、
lucene-ja/src/org/apache/lucene/analysis/ja/NormalizeReader.java
public static final int[] CONVERSION_TABLE
を、
public static final char[] CONVERSION_TABLE
と変更。さらに、'-1'が値として定義されていたものを、'0'と変更。
lucene-ja.jar を再ビルドし、用意。ただし、build.xml が用意されていないので、Eclipse からエクスポートした。
TODO: Make a build.xml for lucene-ja.jar
ということで。


7. Admin GUI による動作の確認

Solr の Field Analysis 画面(Admin GUI の一部)へアクセスする。ポートの設定を変更していない場合は、以下の URL となる。
http://localhost:8983/solr/admin/analysis.jsp
Field のプルダウンで、'type'を選び、テクストボックスへ、'text_sen'と入力する。
Field value (Index) の 'verbose output' チェックボックスをチェック。テキストボックスへ、定番の「すもももももももものうち」と入力。
'Analyze'ボタンをクリックする。
正常に動いている場合は、画面下部に、
Index Analyzer
org.apache.lucene.analysis.ja.JapaneseAnalyzer {}
と表示され、以下のような解析結果が表示される。

















参考にしたサイト

http://d.hatena.ne.jp/knaka20blue/20080922/1222104683
http://shower.human.waseda.ac.jp/~m-kouki/pukiwiki_public/96.html

Friday, December 10, 2010

Apple TV 購入!

iPad の OS バージョンアップに合わせ、Apple TV を購入しました。

予想以上に AirPlay が使えることで、非常に気に入りました。

 

Apple TV を 46" の液晶テレビへ繋ぎ、AirPlay で iPhone/iPad からストリーミングしたビデオや写真を見てみましたが、想像以上にキレイでした。友人は、720P だからイマイチだと思う。と言っていましたが、正直、僕自身は、全く気になりません。この値段で、これだけ使えるのなら買いだと思いました。

 

Friday, December 3, 2010

MacJournal for iPad からの投稿テスト

MacJournal for iPad を購入したので、日本語のエントリーをアップロードできるかテスト。これが問題なければ、義母のiPad購入の障害が無くなることになる。

Sunday, October 31, 2010

Lucene Revolution のセッションビデオが公開されています

10月に行われた Lucene Revolution のセッションの様子がビデオで公開されています。

全てのセッションは、公開されていませんが、Twitter, LinkedIn, Salesforce.com などの人気のあったセッションについては公開されているようです。

http://www.lucidimagination.com/events/revolution2010/videos

Friday, April 30, 2010

New MacBook Pro 15" (Mid 2010) 購入

MacBook Pro 15” (Core i7 2.66GHz, 4GB RAM, 500GB 7200 rpm HDD, 15” HR Glossy screen) を購入しました。

実は、Core i7, 1440x900 以上のスクリーン、バッテリで5時間以上動作。という条件のもと、ThinkPad X201s をオーダしていたのですが、当初予定の4週間を過ぎても納入される気配が無く、納期問い合わせにもイマイチな対応なところに、5月中旬から下旬にかけて納品予定との連絡。落胆していたところで、Appleからモデルチェンジの発表があったので、思い切ってThinkPadをキャンセルし、MacBook Proを購入。予定通り10日後には、納品されました。 ThinkPad は、非常に魅力的な良いマシンだと思い、楽しみにしていたのですが、納期の遅さにガッカリです。キャンペーンなんかで非常に安い値段で手に入るので、それを考えればコストパフォーマンスは非常に良いと思うのですが、それだけに、なおさら腹立たしく感じたのかも知れません。

そんなこんなで心情的にはいろいろありましたが、結果的には非常に満足しています。ちょっと予算オーバしちゃったけどw ただ、メモリを8GBへ増設したいので、来月もお小遣いを節約しなければw

Saturday, March 13, 2010

[備忘録] Unibody MacBook + Mac OS X 10.6 Snow Leopard + Boot Camp で 64 bit Windows 7 を利用する

Boot Camp でパーティンションを切り、Windows 7 をインストール。ここまでは、普通の手順で何の問題も無く出来るのだけど、Boot Camp 3.0 を Windows 7 へインストールしようとすると、”このマシンでは、Boot Camp x64 はサポートされていません”というメッセージ (実際には、“Boot Camp x64 is unsupported on this computer model”) が表示されてインストールできません。が、これを回避する手段があります。

 

1) コマンドプロンプトを管理者権限で起動 スタートメニューの検索ボックスで、「コマンドプロンプト (Command Prompt)」と入力した際に表示されるアイコンで、右クリックメニューを表示し、「管理者権限で実行 (日本語版のメニューでは、表記が多少違うかも。英語版で実施したため曖昧です。英語版では、“Run As Administrator”)」を選択し、コマンドプロンプトを起動。

 

2) DVD ドライブへ移動 DVD ドライブが D ドライブだとした場合、先ほど起動したコマンドプロンプトで、以下を実行 cd D:

 

3) Boot Camp ディレクトリへ移動 BootCamp64.msi ファイルのあるディレクトリへ移動します。日本語版 Windows 7 では、“\”は、“¥”記号になります。

cd Boot Camp\Drivers\Apple 4) Boot Camp インストーラを起動 64 bit 版 Boot Camp 3.0 のインストーラを起動します。

msiexec /i BootCamp64.msi

私の Unibody MacBook (Core 2 Duo 2.4 GHz, 4 GB RAM) でもインストール終了まで数分かかりました。このインストールが終了したら、今度は、Boot Camp Software Update 3.1 for Windows 64 bit (ダウンロードは、こちらから: http://support.apple.com/kb/DL979 ) をインストールすれば、現在の最新の状態とすることが出来ます。このアップデータのインストールは、素直にインストーラのダブルクリックで起動・実行できます。

 

[参考にしたサイト/エントリ]

http://forum2.xeeno.com/~forums/showthread.php?p=9120855

http://blog.andersonshatch.com/2009/01/11/windows-7-x64-on-a-macbook-pro-guide/

http://mdavey.wordpress.com/2009/01/09/windows-7-64-bit-on-a-macbook/

http://gizmodo.com/5387353/how-to-survive-boot-camp-and-run-win-7-on-a-mac

 

Thursday, February 25, 2010

[MEMO] Change the 'Auto Logon' settings on Windows Vista

#1 Open the Start menu

#2 Type ‘netplwiz’ and select the icon that would shows up in ‘Programs’ group.

#3 Click the ‘Continue’ button on ‘User Account Control’ dialog.

#4 If you want to enter the user name and password when you logon to the computer. You should check the option ‘Users must enter a user name and password to use this computer.’ on the ‘User Accounts’ dialog. If you turn off this feature, You should uncheck the option.

#5 Click the OK button and the close the dialog.