近頃、またまた全文検索エンジン的なご相談を頂くことが多くなっている。
15年ぐらい前は、 ChaSen とか使ってゴリゴリと分かち書きをし、 PostgreSQL に単語で登録してインデックス張って・・・みたいなことをよくやっていたのだが、最近は技術も進歩していて、簡単かつ便利なものがたくさんある。
オープンソースのものでいえば、 Apache Solr が代表格になるのかな?このところあまりキャッチアップできていなかったので、ちょっといろいろ調べてみた。
特に面白そうだな、と思ったのが、 「FESS」である。
http://sourceforge.jp/projects/fess/
PDF や Office ドキュメントにも対応しているし、Web もファイルシステムもクロールして索引を作ってくれる。なにより、インストールがめちゃめちゃ簡単である。 Mac なら、ダウンロードしたプログラム一式を適当なところに展開して、 bin/startup.sh を実行するだけで導入できる。あとは、ブラウザでlocalhost の 8080 番ポートを叩き、 fess/admin/ からクロール先を設定してあげるだけだ。
インデックスの作成には、それなりに時間がかかった。が、「クロール全般」から「ドキュメント数毎にコミット」「同時実行のクロール設定数」あたりの設定を調整してあげればチューニングできるらしい。次回のクロール時にどのぐらい速くなるか検証してみようと思う。
で、クロールが完了すると、全文検索が可能になる。検索画面は、まんま Google である。
適当な単語で検索してみる。
わお!
ちゃんと .txt も .pdf も .xls もひっかけてくれる!
その先、ブラウザからドキュメント本体を開くには、 Java アプレットが動くようにしてあげないといけないし、 FESS を localhost で動かしてる以上、アプレットのセキュリティ的な制限をあれこれしてあげないといけなかったりもするのだが、一覧を表示してくれるだけでも非常にありがたい。
Mac OS X には Spotlight があるけど、 担当している Web サイトとか、共有してるストレージとか、 DropBox とかもまとめてクロールしておいたら、意外と便利に使えそうだ。
あと、 FESS には REST API もあるので、 ajax でいろんなアプリケーションと連携させるのも楽しそうだね。