fessでPDF全文検索

PDFファイルの全文検索がしたいということで、ちょっと調べたらfessというものがあって、solrに検索用のページなどをつけたオールインワンなプロダクトのようで、試しに使ってみました。

fessを動かすサーバ内のディレクトリにPDFファイルを置いておき、そこを指定してfessにクロールさせる、それを検索ページで表示させる、というのが目標。

バージョンはfess-server-4.1.0。インストールはzipを解凍するだけ。bin/startup.shで起動すると

http://xxxxxx.co.jp:8080/fess/admin/

で管理画面に行けます。ここでPDFファイルを置いているディレクトリを指定してクロール開始。しばし待つと、完了する(経過はfess-server-4.1.0/webapps/fess/WEB-INF/logs/fess_crawler.outで見ることができる)。

ここで検索画面http://xxxxxx.co.jp:8080/fess/にアクセスして、てきとうなキーワードで検索する。するとヒットしたPDFファイルが列挙される。

ここまではいいんですが、列挙されたPDFファイルへのリンクをクリックしても画面が白くなってしまい、PDFの内容が表示されませんでした。

いろいろやってみたんですが、うまくいかず、結局fess-server-4.1.0/webapps/fess/js/search.jsの内容を書き換えて、

b.push("go?rt=");
b.push(a);
b.push("&u=");
b.push(encodeURIComponent(c));

b.push("docs");
var len = c.lastIndexOf("/");
var file = c.slice(len);
b.push(file);

とし、クロールするディレクトリと同様のものをfess-server-4.1.0/webapps/fess/にも置くということで対処。いまいちだけど、とりあえず動きました。