Luceneメモ

作成 2003/1/1

Luceneって?

LuceneはJavaで書かれたテキスト検索エンジンです。 機能的には、後から来たNAMAZUみたいなもんですかね。

使ってみる

試した環境

設定

http://jakarta.apache.org/lucene/docs/index.html

からアーカイブをダウンロード

展開したlucene-1.2を適当なディレクトリに配置し、

をクラスパスに通します。

mainから実行

IndexFilesで検索インデックスを作成します。 引数で指定したsrcディレクトリ以下のファイルのインデックスを (デフォルトで)indexディレクトリ以下に作成します。

C:\apps\lucene-1.2>set CLASSPATH=lucene-1.2.jar;lucene-demos-1.2.jar
C:\apps\lucene-1.2>java org.apache.lucene.demo.IndexFiles src
...

SearchFilesでファイルを検索します。

C:\apps\lucene-1.2>java org.apache.lucene.demo.SearchFiles index
Query: test
Searching for: test
1 total matching documents
0. src\demo\org\apache\lucene\demo\html\Test.java

Webアプリケーションから実行

luceneweb.warをwebappにコピーし、 Tomcatを起動することで、lucenewebを展開します。

インデックス作成用のディレクトリを作ります。 以下は%TOMCAT_HOME%/opt/lucene/indexを作りました。

lucencewebディレクトリからIndexHTMLを実行します。 -indexの後にindex作成ディレクトリを指定、 その後で相対ディレクトリで作成対象のディレクトリを指定します。 ここでは、..を指定しているので、webapp以下のディレクトリがインデックス対象です。

C:\apps\jakarta-tomcat-4.0.4\webapps\luceneweb>set CLASSPATH=WEB-INF\lib\lucene-1.2.jar;WEB-INF\lib\lucene-demos-1.2.jar
C:\apps\jakarta-tomcat-4.0.4\webapps\luceneweb>java org.apache.lucene.demo.IndexHTML -create -index C:\apps\jakarta-tomcat-4.0.4\opt\lucene\index ..
...

luceneweb直下のconfiguration.jspを編集します。 indexLocationを先ほど作成したディレクトリ(今バージョンではフルパス)に 書き換えます。

//String indexLocation = "/opt/lucene/index";
String indexLocation = "C:/apps/jakarta-tomcat-4.0.4/opt/lucene/index";

lucencewebにアクセスし、検索語を入れてsearch!

検索結果が表示されます。

lucenewebからの相対パスでインデックスを作成しているので、 Contextパスがそうじゃないもの(ROOTとか)はうまくリンクできませんが、 exampleの中とかはリンクできます。

感想


もどる