全文検索のFessでローカルにあるようなファイルもインデックス化するために S2Robot にファイルシステムも巡回できるように機能追加してみた。file:// で始まるパスを渡せば、そこからファイルシステムを辿っていく感じ。次は Word や Excel の中身の文字列を取得する機能を加えようかね。
投稿者: shinsuke
JAFでMIMEタイプ取得
JavaBeans Activation Framework を使えば、以下みたいな感じで MIME タイプを取得できる。
String filename = "hoge.txt"; String mimeType = new MimetypesFileTypeMap().getContentType(filename);
これをするためには、Maven2 を使っているなら、pom.xml に
: <repositories> <repository> <id>java.net</id> <url>http://download.java.net/maven/1</url> <layout>legacy</layout> </repository> </repositories> : <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> :
を書けば良い。jaf もデフォルトで処理できる拡張子が少ないので、META-INF/mime.typesを作って
application/msword doc dot wiz rtf application/msexcel xls application/mspowerpoint ppt application/x-pdf pdf
という感じで書いていけば拡張可能。という感じで、S2Robot 内で使ってみた。
やっとこ検索
全文検索として、Fess を作っているけど、やっとこ指定時刻にクロールしてインデックスできる感じになってきた。まぁ、まだ、Solr の細かいところまで分かってない気もするけど、schema.xml を nutch のを参考にして、作り直してみたりした。今のところは、S2Robot で Web 巡回しかできていないので、ファイルシステムの巡回も何とかしたいな(ファイルシステムの巡回もS2Robotにもたせるのはありかも)。そんでもって、より nutch と差別化していくためにもモバイルにも対応させようかと考え中(ここはMobyletの出番か!?)。S2Chronos も使っているけど、ちらちらコードを見ていると気になるところがあるのだよな…(*_ja.properties だけで、デフォルトのやつはいらんのかとか、ソース上でc:\tmpみたいのも見に行くとこもあったような)。あとは、ぼちぼち S2Robot に robots.txt やサイトマップを読む機能をつけないとな(行儀をよくしないと)。Javaのrobots.txtとか読みにいくようなライブラリもちらっと探してみたけど、標準的なものがないっぽいから自前で作る必要があるな。そんな感じで、まだ、いろいろとあるけど地道に進行中。