Apache Lucene を 60 秒で試してみる

今更ながら Java全文検索です。とりあえず Apache Lucene の デモを試してみようと思ったのですが、最新リリースの 3.5.0 の情報が見当たらなかったので、この際、誰でも 60秒で デモを試せるように Gradle スクリプトを作ってみました。

デモのために わざわざ 自分でファイルをダウンロードして、解凍して、あれしてこれして なんて面倒ですよね。
Gradle を使えば たった 3 ステップで試せます。(もちろん、今時の人たちは 既に Gradle はインストール済みですよね...)

  1. build.gradle 作成
  2. インデックスファイル 作成
  3. 全文検索 実行

build.gradle 作成

まずは 適当なディレクトリに build.gradle を作成して 次のスクリプトをコピーしましょう。
今回は Lucene がメインなので Gradle スクリプトの細かい説明は省略。結構がんばったんですけど...

インデックスファイル 作成

次に 以下のコマンドを実行して全文検索のためのインデックスファイルを作成しましょう。

gradle index

このコマンドを実行すると

  1. デモの実行に必要なライブラリを Maven リポジトリから取得
  2. lucene-core-3.5.0-sources.jar を Maven リポジトリから取得して src ディレクトリに展開
  3. src 配下のソースファイルをもとに インデックスファイル生成

のような処理が実行されます。

全文検索 実行

あとは 以下のコマンドの に検索したい単語を指定して全文検索するだけです。

gradle ?<query>

例えば "reader" を検索したい場合

gradle ?reader

のように実行します。もし複数の単語を指定したい場合は

gradle ?'reader AND search'

のようにクォートしましょう。main 関数を含むファイルを検索したいなら

gradle ?'"public static void main("'

のような感じで OK...

の詳しい指定方法については http://lucene.apache.org/java/3_5_0/queryparsersyntax.html を参照してください。

Gradle 使えば こんなに簡単に全文検索できちゃうんですね。
なぜ今まで試さなかったんだろうか?
今度は 日本語の全文検索を試してみようかな?
もちろん Gradle で...