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();"
えっ・・・?
終わりでつか?(汗)