検索エンジンApache Luceneをインストールしてサンプルを動かしてみる

Apache Lucene を Debian lenny にインストールしました。
このブログを書いている時点でバージョンは3.0.1でした。

まずはダウンロード
$ mkdir ~/lucene
$ cd ~/lucene
$ wget http://ftp.riken.jp/net/apache/lucene/java/lucene-3.0.1-src.tar.gz

解凍してビルド
$ tar xvzf lucene-3.0.1-src.tar.gz
$ mv lucene-3.0.1 3.0.1
$ cd 3.0.1
$ pwd
/home/satoshi/lucene/3.0.1
$ ant
(略)

BUILD Successful

動作確認のためのコードをビルドする
このコードはtar.gzに同梱されている。
$ ant war-demo

検索インデックスを作成する。データはsrc/以下のファイルから作る。
これでソースコード検索ができるようになる。
ファイル数は817ファイル、サイズは合計7.5M
$ java -cp build/lucene-core-3.0.1-dev.jar:build/lucene-demos-3.0.1-dev.jar org.apache.lucene.demo.IndexFiles src
(略)
Optimizing...
9376 total milliseconds
$ find src/ |wc -l
817
$ du -k -s src/
7564    src/

検索してみる
$ java -cp build/lucene-core-3.0.1-dev.jar:build/lucene-demos-3.0.1-dev.jar org.apache.lucene.demo.SearchFiles
Enter query:
test
Searching for: test
189 total matching documents
1. src/test/org/apache/lucene/util/ArrayUtilTest.java
2. src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java
3. src/site/src/documentation/skins/common/skinconf.xsl
4. src/test/org/apache/lucene/analysis/TestCharArraySet.java
5. src/site/src/documentation/skins/lucene/skinconf.xsl
6. src/test/org/apache/lucene/analysis/TestStopAnalyzer.java
7. src/test/org/apache/lucene/util/LuceneTestCase.java
8. src/test/org/apache/lucene/util/LocalizedTestCase.java
9. src/test/org/apache/lucene/search/function/TestFieldScoreQuery.java
10. src/site/src/documentation/skins/lucene/xslt/html/document-to-html.xsl
Press (n)ext page, (q)uit or enter number to jump to a page.

といった感じで検索ができたー。