Top / Java / Lucene

Luceneとは

LuceneはJavaで書かれた検索エンジンです。インデックスを作成するインデクサと、検索を行うエンジンの二つでなっています。「辞書」と呼ばれるファイルを用いて、あらかじめ検索対象からインデックスを作成しておき、検索時にはインデックスを検索するという仕組みです。アプリで検索機能を利用したくて使ってみました。

下準備

辞書の作成

Luceneを使うにはあらかじめインデックスを作成しておきますが、そのための辞書も 自分で作成しておく必要があります。そのためのライブラリが、Senと呼ばれるモノです。SenはJavaで実装された形態素解析器Sen Project:です。

SenとLuceneのダウンロード

このサイト より

をダウンロードします。適当なところに上のアーカイブは解凍しておきましょう。

辞書作成

辞書を作成するために ipadic-2.6.0.tar.gz というファイルが必要なのですが、インターネットにアクセスできる環境では自動的にダウンロードされてきます。イントラの人は

http://chasen.naist.jp/stable/ipadic/

よりipadic-2.6.0.tar.gz をダウンロードし、senのdicディレクトリにipadic-2.6.0.tar.gzのままおいておきましょう。

辞書を作成するには以下のコマンドを実行します。

>cd c:/javatools/sen/ <-senを解凍したディレクトリ
>cd dic
>ant -Dperl.bin=c:/cygwin/bin/perl.exe

以上で辞書が作成されます。

コマンドプロンプトを使う、JavaAPIを使う

ここから先はコマンドプロンプトでインデックス作成、検索を行うインタフェースと、JavaのAPI経由でインデックス作成、検索を行うインターフェースの2通りが存在します。

インデックスの作成(プロンプト)

ためしにEclipseのworkspaceのインデックスを作成します。コマンドプロンプトで

> set SEN_HOME=c:\javatools\sen
> set LUCENE_HOME=c:\javatools\lucene-ja
> set PATH=%PATH%;%LUCENE_HOME%\bin
> mktextindex.bat -create -index hoge C:\workspace

でインデックスが作成されます。

オプションの意味は

-create
新規に作成するときに指定(これ指定しないとエラーになるので注意!)
-index hoge
hogeはインデックスを作成するディレクトリ

最後の引数C:\workspaceはドキュメントが格納されたディレクトリです。

検索する(プロンプト)

インデックスの作成(Java API)

検索する(Java API)

関連リンク


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Java / Lucene

現在のアクセス:14007


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS