Fessでファイルシステムクロールを利用して、ローカルファイルシステムをクロールすると、検索結果のURLがファイルスキーム file://〜 になります。検索結果ページにファイルスキームのURLをリンクとして出力しても、今のブラウザではリンクとしては機能しません。
Fessではこの問題に対応するために、ファイルスキームのURLの場合にはFessが検索結果のURLのドキュメントを代わりに取得して、利用者に返す「コンテンツプロキシー機能」を提供しています。今回は、このコンテンツプロキシー機能について説明します。
コンテンツプロキシーについて
ブラウザで file:// で始まるファイルスキームのURLを開こうとすると、ローカルから参照できるファイルシステム上のファイルにアクセスすることができると思います。しかし、Fessの検索結果ページにファイルスキームのURLをリンクとして出力して、そのリンクをクリックしてもアクセスすることはできません。現在の一般的なブラウザでは、セキュリティ対策として、このような状況でのローカルのファイルシステムへのアクセスを制限されています。
Fessでは、コンテンツプロキシー機能により、検索結果のリンクをクリックした際に、ファイルスキームのURLの場合は、ブラウザでなく、Fessが対象ファイルにアクセスします。 Fessが取得したファイルをブラウザに返すことで、利用者は検索結果をクリックしたら、対象ファイルをダウンロードして取得できるというかたちです。
このように、Fessが対象のコンテンツを代わりに取得して返すので、Fessではコンテンツプロキシー機能と呼んでいます。
ローカルのファイルシステム以外に、SMBスキームでアクセスするファイルサーバでも、検索結果のリンクはファイルスキームになるため、コンテンツプロキシー機能が適用されます。
動作確認
実際にファイルサーバをクロールして、検索結果をクリックしてみます。SMBスキームでアクセスできるファイルサーバがなければ、ローカルのファイルシステムをクロールして、確認することもできます。
今回はFess 14.10.0を利用して説明します。
Fessをインストール後、管理画面にログインしてファイルクロール設定を作成します。