UNLIMITED JAVA

WEB技術や普段の生活のブログ

Lucene

Javaで作られたオープンソース全文検索エンジンです。
略してルッシーです。

やるたいこと

とあるDBの内容をキーワード検索できるようにしたい。
DB内容は、純粋な文です。1-3文くらい。
プライマリキー情報をゲッツ。

るっしーで出来ること

指定したパス内のファイルに対しインデックスを作成し、
高速な検索をする。
ファイルの相対パス名を出力。

というわけで、
1、DB登録時に、String文字列(Documentクラスでもいい?)とプライマリーキーを
渡し、インデックス登録するように変更。

でつ。

読み取り部分には、手を加える必要はなさそう。
インデックスから手をつける。

まず、初期状態っていうか付属のデモでは

"indexFiles hoge"

で、hogeパス以下をいっきにインデックス化します。

中を見ると

"IndexWriter writer = new IndexWriter("index", new StandardAnalyzer(), true);"

IndexWriterクラスを呼び出しています。
やつがインデックスを作って下さりやがります。

"IndexWriter(String , Analzer , boolean)
IndexWriter(File ,String Analzer , boolean)
IndexWriter(Directory ,String Analzer , boolean)"

の3つのインスタンスがあります。
使ってるのは1つ目かな?
使ってるインデックスのフォルダ名、analzer , 新規作成かどうか
を引数とします。
Analzerは、文章解析のクラスらしいです。
ちなみに英語専門。
中を見ると3つ目 "Directory ,String Analzer , boolean"
へ変換してます。

これで、Writerの完了♪

続いてデモの内部
"writer.addDocument(FileDocument.Document(file));"

これで、Document形式のファイルを書き出す。

んで

"writer.optimize();
writer.close();"

えっ・・・?
終わりでつか?(汗)