Lucene.NET を調査する 機会があったので、Luceneの インデックスを確認するツール Luke をWindows 上でセットアップするメモの覚書を記載しておきます。

検証環境は次の通りです

  • Windows 2012
  • Apache Lucene.NET 3.0.3
  • Luke 3.5.0
  • Java VM バージョン 1.7.0 update 45

Lukeのバージョンとサポートしている JVM のバージョン,Lucene のバージョンについては次のURLを参照してください。

Compatibility
http://code.google.com/p/luke/wiki/Compatibility

1. Java のダウンロード

Java のライタイムがインストールされていない場合は、 java のサイトからダウンロードしてください。 今回 Luke  3.5.0 を使用するので JVM 1.6 以上がインストールされている必要があります。

1.1 JVMのダウンロードとインストール

以下のURLから jvm のインストーラーをダウンロードしてインストールしてください。

http://www.java.com/ja/download/

1.2 環境変数の設定

特に必要がないと思いますが、利便性のため、 システムの環境変数 JAVA_HOME の設定と java の実行ファイルまでの パスの設定を PATH に追加してください。

デフォルトでインストールした場合は、次のようになります。PATHの値に設定している%PATH%は既存の値の末尾に;をつけてjavaまでのパスを追加するという意味になります。

環境変数
JAVA_HOME C:\Program Files (x86)\Java\jre7
PATH %PATH%;%JAVA_HOME%\bin

2. Lukeのダウンロード

Luke を公式のページからダウンロードします。今回は現時点で安定バージョンの lukeall-3.5.0.jar をダウンロードしました。

Downloads
http://code.google.com/p/luke/downloads/list

3.動作確認

コマンドプロンプトを起動し、Lukeのjar ファイルをダウンロードしたフォルダーに移動して 次のコマンドを入力します。

java -jar lukeall-3.5.0.jar

すると、下図のように Lucene のインデックスの読み取り設定を入力するダイアログが表示されます。Pathにインデックスフォルダのパスを設定し、その他インデックスの読み取りの設定を行ってからOKボタンをクリックします。下図ではサイトコアのインデックスフォルダーのパスを PATH に設定しています。

上述したダイアログでOKボタンをクリックして画面を閉じると、 下図のように Lukeの画面が表示されます。Lukeを使ってフィールドのトークンの値や各Documentに実際の値が保存されている場合はその値やドキュメントの検索などを行うことができるようになります。

下図はLucene.NET を使用するサイトコアのインデックスを表示した状態です。Overviewで _content フィールドを選択してトークナイズされた値の一部(50件) を表示しています。Sitecoreでは日本語の数値バージョンのアイテムの場合、CJKAnalyzer を使用しているので 日本語の部分が 2文字 (2-gram) でトークナイズされて _contentフィールドにトークンが格納されていることがわかります。 

4.まとめ

説明は以上です。Lukeを動かしていると、たまにコンソールにエラーとかでた気がしますが、そこは無視の方向で。オープンソースですし。Lukeを使うと Solrでもインデックスの内容を確認することができます。