先日、Fessサーバーの立ち上げまで行いました。
たんとか起動するところまでいったものの、今度は、ファイルシステムクロークで躓きました。
今回はそのお話。
元々検索システム導入のきっかけは、イントラネットにある文書を検索するためのもの。
だから共有フォルダ内を検索してくれなくては意味がありません。
Fessにはファイルシステムクローク機能があり、かつ認証が必要なフォルダに対しても対応しているはずだったのですが・・・・・。
[22回]
まず、どの共有フォルダをクロークするか設定します。
設定方法はこちらに載っています。
"file:////"にするか"smb://"するか迷いそうですが、ここでは"smb://"とします。
”file://"はデスクトップ検索用だそうです。
また、FessサーバーがLinuxでかつきちんとDNSの設定がされていないと、ホスト名ではうまくクロークしてくれません。
今回は面倒だったので、IPアドレスにしました。
例はこちら
smb://192.168.1.11/share/
次に、ファイルシステム認証に移ります。
この設定方法もこちらに載っています。
ちなみに認証方法は"Samba"しか選べません。
以前・・・
Windows2003の共有フォルダに対してであればこれでクロークしてくれました。
が、今回はWindows2008R2の共有フォルダに対するもの。
もしかしたら、共有フォルダの設定そのものが間違っているかもしれませんが・・・・・。
クロークしてくれません・・・・・。
ファイルサーバー側のイベントビューワーでアクセスログを見てみると・・・。
ちゃんとLinuxサーバーからアクセスしていますが、認証キーが・・・・・・
Nullです
Fessのファイル認証の設定がうまくきいていないようなのです。
しかもおもしろいことに、同じような設定を3つ作ってやると、1から2つ目は失敗しますが、3つ目はなぜか成功するのです。
でもこれじゃぁね・・・。
fessはどうやらファイルシステムの認証にJCIFSというオープンソースのJavaライブラリーを使っているようで、JCIFで検索するとヒントを見つけました。
それは
このサイト
ということは、Fessのファイルシステム認証は使わずに、ファイルシステムクロークの設定のパスに設定してしまうのです。
たとえば、先ほどの、"192.168.1.11"のサーバーの共有フォルダ"share"にユーザー名"Administrator"、パスワード"password"で認証させクロークする設定は以下のようになります。
パス smb://Administrator:password@192.168.1.11/share/
で、ファイルシステム認証には何も設定しません。
そのかわり、バスマッピングに以下のように設定します。
正規表現 smb://Administrator:password@192.168.1.11/
置換文字 smb://192.168.1.11/
処理方法 クローク時/表示時
バスマッピングの設定をしなかったら、クロークしたときのDB登録時に正規表現そのまま登録されかつ、検索結果表示時も正規表現そのまま表示されてしまいます。そして、ユーザー、パスワード丸わかりで、しかも、検索結果からリンク先が表示されない結果となってしまいます。
これにより、検索結果も、file://192.168.1.11/share/ファイル名
となります。
でも、本当はどうなのだろう?
fessの不具合なのか、Windows2008R2共有フォルダの設定の問題なのか・・・。
まぁ、これでうまく共有フォルダもクロークされたので良しとしますが・・・・。
実はまだもうひとつ試練があったのです。
それは次回に・・・。
PR