PDFからのテキスト抽出

S2Robot の Extractor に PDF からのテキスト抽出をするコードがあるのだけど、内部的には Apache の PDFBox を利用していて、S2Robot のテストケースにあるテスト用の PDF からは普通に抽出できるのだが、そこいらの PDF から日本語を抽出すると文字化けする。Apache の JIRA には PDFBOX-420 ていうのがあがっていて、一度は修正されたみたいだけど、テストケースが通らんから revert されているみたい…。これないと、そもそも使いものにならんのだけど、PDFBox 以外の方法として何かないかと iText の PdfTextExtractor とか試してみたりしたけど、これはこれで日本語がとれない…。そんで、また、PDFBox に戻り、revert された PDFont クラスを元に戻すと動くので、それを使うことにするかな。

S2Robotに細かい修正を入れる

来週か再来週あたりに Fess をリリースしたいと考えていて、それに併せて、細かい修正を S2Robot にポツリポツリと入れている。という感じなので、Fess のリリース前には、S2Robot 0.1.1 をリリースする予定でいます。0.1.1 の後には、拡張的な機能も追加したい感じです。

Seasar Conference でしゃべります

ここのところ力を入れてきた、S2Robot と Fess について話します。

http://event.seasarfoundation.org/sc2009autumn/Session#S3044

2本立てな感じだけど、S2Robot はクローラフレームワークです。ウェブやファイルシステムなど自由に巡回して、指定した内容を取得することができます。HTML をクロールできるのはもちろんだけど、MS Office 系ファイル、画像、音声、圧縮ファイルなど文字列を取得できるファイルは情報取得が可能です(画像や音声はメタ情報を取ることになりますが)。たぶん、使っていただければわかると思いますが、S2Robot はなかなか高機能なクローラな感じです。

Fess については、Java フレンドリーな全文検索システムです。クローラの部分は S2Robot を利用しているので、ウェブやローカルファイルシステムをクロールしてインデックスが可能です。インデックス対象も S2Robot が処理できるものになるので、さまざまな形式のファイルを検索対象にできます。そして、検索エンジン部分には、Apache Solr を持ってきています。Wikipedia によると、Solr は約 2 億ドキュメントもインデックスしているサイトもあるようで、実際に Fess で使っていますが快適です(どこかのアプライアンスのような数万、数十万ドキュメントまでなどのようなちっちゃなことは言いません)。Fess では、Solr サーバをグルーブ化設定できたりと、インデックスできる最大ドキュメント数は構成次第です。あとは、Java フレンドリーというキャッチコピーで書いていますが、システム自体は SAStruts です。なので、Fess のアプリ自体は war ファイルで完結してます。デザイン等は jsp をいじればよいですし、Tomcat のようなサーブレットコンテナがあれば使えます。そうそう、重要なことを一つ忘れてた。Fess はモバイル対応をしています(たぶん、これはほかになかなかないような気が)。これは Mobylet の機能のおかげなのですが、各携帯用にも検索結果を最適に表示できたりします。ちなみに Fess は グッジョブ で稼働させたりしています(様子を見ながらな感じですけど)。

という感じで、並びのコマも Blogopolis、DBFlute、T2 と強力な感じなので、集客活動を頑張らないといかんな~と思っています。S2RobotとFessではネームバリューもないので、竹内さん のところで触れてもらったりと(^^; ぜひ、皆様、Seasar Conference にお越しください~。